├── .nvmrc
├── .gitignore
├── dist
├── logo.png
├── index.html
└── index.css
├── screenshot.gif
├── static
├── images
│ └── logo.png
├── html
│ └── index.html
└── scss
│ └── index.scss
├── src
├── Plot.purs
├── Main.purs
├── Plot.js
├── Utils.purs
├── Matrix.purs
├── LinearRegression.purs
└── UI.purs
├── README.md
├── bower.json
├── package.json
├── LICENSE
└── yarn.lock
/.nvmrc:
--------------------------------------------------------------------------------
1 | v5.5.0
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /bower_components/
2 | /node_modules/
3 | /.pulp-cache/
4 | /output/
5 | /.psc*
6 | /.psa*
7 |
--------------------------------------------------------------------------------
/dist/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lettier/interactive-simple-linear-regression/HEAD/dist/logo.png
--------------------------------------------------------------------------------
/screenshot.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lettier/interactive-simple-linear-regression/HEAD/screenshot.gif
--------------------------------------------------------------------------------
/static/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lettier/interactive-simple-linear-regression/HEAD/static/images/logo.png
--------------------------------------------------------------------------------
/src/Plot.purs:
--------------------------------------------------------------------------------
1 | {-
2 | (C) 2017 David Lettier
3 | lettier.com
4 | -}
5 |
6 | module Plot where
7 |
8 | import Prelude
9 | import Control.Monad.Aff (Aff)
10 |
11 | foreign import data PLOT :: !
12 |
13 | foreign import makePlot :: forall aff. PlotData -> Aff (plot :: PLOT | aff) Unit
14 |
15 | type PlotData = { scatter :: Array { x :: Number, y :: Number }, line :: Array { x :: Number, y :: Number } }
16 |
17 | emptyPlotData :: PlotData
18 | emptyPlotData = { scatter: [], line: [] }
19 |
--------------------------------------------------------------------------------
/src/Main.purs:
--------------------------------------------------------------------------------
1 | {-
2 | (C) 2017 David Lettier
3 | lettier.com
4 | -}
5 |
6 | module Main where
7 |
8 | import Prelude
9 |
10 | import Data.Maybe (fromMaybe)
11 |
12 | import Control.Monad.Eff (Eff)
13 |
14 | import Halogen as H
15 | import Halogen.Util (awaitBody, runHalogenAff, selectElement)
16 |
17 | import Plot (emptyPlotData, makePlot)
18 |
19 | import UI (Effects, ui, initialState)
20 |
21 | main :: Eff (Effects ()) Unit
22 | main = runHalogenAff do
23 | body <- awaitBody
24 | uiContainer <- selectElement "#uiContainer"
25 | H.runUI ui initialState (fromMaybe body uiContainer)
26 | makePlot emptyPlotData
27 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 
2 |
3 | # Interactive Simple Linear Regression
4 |
5 | Input 2D data points and fit a simple linear regression model using gradient descent.
6 | Built with [PureScript](http://www.purescript.org/).
7 | Playable at [lettier.com/simple-linear-regression/](http://www.lettier.com/simple-linear-regression/).
8 |
9 | ## Documentation
10 |
11 | For a full write up, visit
12 | [Let's make a Linear Regression Calculator with PureScript](https://lettier.github.io/posts/2017-01-15-linear-regression-and-the-amazing-beard.html).
13 |
14 |
15 | ## Get Started
16 |
17 | ```bash
18 | git clone git@github.com:lettier/interactive-simple-linear-regression.git
19 | cd interactive-simple-linear-regression
20 | # Install nvm, npm, and yarn.
21 | nvm use
22 | yarn run installPackages
23 | yarn run buildDist
24 | xdg-open dist/index.html
25 | ```
26 |
27 | (C) 2017 David Lettier
28 | http://www.lettier.com/
29 |
--------------------------------------------------------------------------------
/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "simple-linear-regression"
3 | , "description": "Simple linear regression calculator."
4 | , "homepage": "http://lettier.com/simple-linear-regression/"
5 | , "license": "Apache-2.0"
6 | , "authors": ["David Lettier"]
7 | , "private": true
8 | , "ignore": [
9 | "**/.*"
10 | , "node_modules"
11 | , "bower_components"
12 | , "output"
13 | ]
14 | , "dependencies": {
15 | "chart.js": "2.4.0"
16 | , "purescript-prelude": "^2.1.0"
17 | , "purescript-console": "^2.0.0"
18 | , "purescript-foldable-traversable": "2.0.0"
19 | , "purescript-arrays": "3.1.0"
20 | , "purescript-math": "2.0.0"
21 | , "purescript-integers": "2.1.0"
22 | , "purescript-random": "2.0.0"
23 | , "purescript-maybe": "2.0.1"
24 | , "purescript-globals": "2.0.0"
25 | , "purescript-halogen": "*"
26 | }
27 | , "devDependencies": {
28 | "purescript-psci-support": "^2.0.0"
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "simple-linear-regression"
3 | , "description": "Simple linear regression calculator."
4 | , "homepage": "http://lettier.com/simple-linear-regression/"
5 | , "license": "Apache-2.0"
6 | , "author": "David Lettier"
7 | , "private": true
8 | , "scripts": {
9 | "installPackages": "yarn && bower install"
10 | , "buildSrc": "pulp build"
11 | , "buildDist": "mkdir -p dist && pulp browserify --to dist/app.js && node-sass static/scss/index.scss dist/index.css && cp -R static/images/. dist/ && cp -R static/html/. dist/"
12 | , "watchBuildDist": "onchange './static/**/*' './src/**/*' -i -- yarn buildDist"
13 | }
14 | , "dependencies": {
15 | "virtual-dom": "^2.1.1"
16 | , "chartjs-color": "^2.0.0"
17 | , "moment": "^2.10.6"
18 | },
19 | "devDependencies": {
20 | "pulp": "^10.0.0"
21 | , "purescript": "^0.10.2"
22 | , "node-sass": "4.3.0"
23 | , "onchange": "^3.2.1"
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/dist/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Simple Linear Regression | Lettier.com
6 |
7 |
8 |
9 |
10 |
11 |
Simple Linear Regression
12 | Add points by pressing .
13 |
14 |
15 | Remove points by pressing
16 | or
17 | .
18 |
19 | Find the y-intercept and the slope by pressing .
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/static/html/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Simple Linear Regression | Lettier.com
6 |
7 |
8 |
9 |
10 |
11 |
Simple Linear Regression
12 | Add points by pressing .
13 |
14 |
15 | Remove points by pressing
16 | or
17 | .
18 |
19 | Find the y-intercept and the slope by pressing .
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/dist/index.css:
--------------------------------------------------------------------------------
1 | /*
2 | (C) 2017 David Lettier
3 | lettier.com
4 | */
5 | body {
6 | font-family: sans-serif;
7 | margin-top: 25px;
8 | margin-left: 25px;
9 | background-color: #343438;
10 | color: white;
11 | height: 100%;
12 | line-height: 2; }
13 |
14 | input {
15 | margin-right: 4px;
16 | outline: none;
17 | border: none;
18 | border-radius: 1px;
19 | padding: 2px;
20 | font-size: 20px;
21 | width: 210px;
22 | background-color: whitesmoke;
23 | color: #222; }
24 |
25 | li {
26 | list-style: none;
27 | margin-top: 3px; }
28 |
29 | button {
30 | background-color: #6f6cb9;
31 | color: white;
32 | font-weight: bold;
33 | margin: 2px;
34 | border-style: none;
35 | border-radius: 1px;
36 | outline: none;
37 | font-size: 20px;
38 | cursor: pointer;
39 | -webkit-box-shadow: 0px 3px 3px 0px #190d25;
40 | -moz-box-shadow: 0px 3px 3px 0px #190d25;
41 | box-shadow: 0px 3px 3px 0px #190d25; }
42 |
43 | #pageContainer {
44 | height: 100%; }
45 |
46 | #chartContainer {
47 | margin-right: 10px; }
48 |
49 | #instructionsContainer {
50 | margin-bottom: 20px; }
51 |
52 | #uiContainer {
53 | margin-left: 10px; }
54 |
55 | #logoContainer {
56 | position: absolute;
57 | bottom: 0px;
58 | right: 0px;
59 | clear: both; }
60 |
61 | #logo {
62 | width: 250px;
63 | height: 250px; }
64 | @media (max-width: 1440px) {
65 | #logo {
66 | width: 200px;
67 | height: 200px; } }
68 | @media (max-width: 1024px) {
69 | #logo {
70 | width: 150px;
71 | height: 150px; } }
72 | @media (max-width: 768px) {
73 | #logo {
74 | width: 100px;
75 | height: 100px; } }
76 |
77 | .runButton {
78 | background-color: #00c17c; }
79 |
80 | .removeButton {
81 | background-color: #f52f57; }
82 |
83 | .randomPointsButton {
84 | background-color: #4d98c5; }
85 |
86 | .defaultCursor {
87 | cursor: default; }
88 |
89 | .row {
90 | display: flex;
91 | flex-direction: row; }
92 |
--------------------------------------------------------------------------------
/src/Plot.js:
--------------------------------------------------------------------------------
1 | /* global exports */
2 |
3 | /*
4 | (C) 2017 David Lettier
5 | lettier.com
6 | */
7 |
8 | "use strict";
9 |
10 | var Chart = require('../../bower_components/chart.js');
11 |
12 | exports.makePlot = (function () {
13 | var ctx = document.getElementById("pointChart");
14 | var plot = new Chart(
15 | ctx
16 | , {
17 | type: 'bar'
18 | , data: {
19 | datasets: [
20 | {
21 | label: ''
22 | , type: 'scatter'
23 | , data: []
24 | , pointBorderColor: '#87FFBF'
25 | , pointBackgroundColor: '#87FFBF'
26 | , pointRadius: 7
27 | , showLine: false
28 | },
29 | {
30 | label: ''
31 | , type: 'line'
32 | , data: []
33 | , fill: false
34 | , borderColor: '#DC84F4'
35 | , borderWidth: 5
36 | , pointRadius: 0
37 | , showLine: true
38 | }
39 | ]
40 | }
41 | , options: {
42 | responsive: false
43 | , legend: {
44 | display: false
45 | }
46 | , scales: {
47 | xAxes: [
48 | {
49 | type: 'linear'
50 | , position: 'bottom'
51 | , gridLines: {
52 | color: '#aaa'
53 | , zeroLineColor: '#aaa'
54 | }
55 | , ticks: {
56 | fontColor: '#aaa'
57 | }
58 | }
59 | ]
60 | , yAxes: [
61 | {
62 | gridLines: {
63 | color: '#aaa'
64 | , zeroLineColor: '#aaa'
65 | }
66 | , ticks: {
67 | fontColor: '#aaa'
68 | }
69 | }
70 | ]
71 | }
72 | }
73 | }
74 | );
75 | return function (data) {
76 | plot.data.datasets[0].data = data.scatter || [];
77 | plot.data.datasets[1].data = data.line || [];
78 | plot.update();
79 | };
80 | }());
81 |
--------------------------------------------------------------------------------
/src/Utils.purs:
--------------------------------------------------------------------------------
1 | {-
2 | (C) 2017 David Lettier
3 | lettier.com
4 | -}
5 |
6 | module Utils where
7 |
8 | import Prelude
9 |
10 | import Global (readFloat, isNaN, isFinite)
11 |
12 | import Data.Generic (gShow)
13 | import Data.Array (length, head)
14 | import Data.Maybe (Maybe(..), fromMaybe, isNothing)
15 | import Data.Foldable (foldl)
16 | import Data.Int (toNumber)
17 |
18 | firstOrSecondValues :: (Array Number -> Maybe Number) -> Array (Array Number) -> Array Number
19 | firstOrSecondValues f [] = []
20 | firstOrSecondValues f es = foldl innerFold [] (map f es)
21 | where
22 | innerFold acc (Just e) = acc <> [e]
23 | innerFold acc Nothing = acc
24 |
25 | first :: Array Number -> Maybe Number
26 | first [x, y] = Just x
27 | first _ = Nothing
28 |
29 | second :: Array Number -> Maybe Number
30 | second [x, y] = Just y
31 | second _ = Nothing
32 |
33 | lengthNum :: forall a. Array a -> Number
34 | lengthNum [] = 0.0
35 | lengthNum xs = (toNumber <<< length) xs
36 |
37 | arrayNumberHandler :: (Number -> Number -> Number) -> Array Number -> Number
38 | arrayNumberHandler f [x, y] = f x y
39 | arrayNumberHandler _ _ = 0.0
40 |
41 | stringToMaybeNumber :: String -> Maybe Number
42 | stringToMaybeNumber s = maybeNumber
43 | where
44 | float :: Number
45 | float = readFloat s
46 | maybeNumber :: Maybe Number
47 | maybeNumber = if isNaN float then Nothing else Just float
48 |
49 | maybeNumberToString :: Maybe Number -> String
50 | maybeNumberToString Nothing = ""
51 | maybeNumberToString (Just a) = gShow a
52 |
53 | isInfinity :: Number -> Boolean
54 | isInfinity = not <<< isFinite
55 |
56 | arrayMinOrMax :: forall a. (Ord a) => (a -> a -> a) -> a -> Array a -> a
57 | arrayMinOrMax _ default [] = default
58 | arrayMinOrMax f _ [h] = h
59 | arrayMinOrMax f default values = foldl (\ acc value -> f acc value) (fromMaybe default (head values)) values
60 |
61 | numberInvalid :: Number -> Boolean
62 | numberInvalid n = isNaN n || isInfinity n
63 |
64 | containsNothing :: forall a. Array (Maybe a) -> Boolean
65 | containsNothing xs = foldl (\ acc x -> acc || isNothing x) false xs
66 |
--------------------------------------------------------------------------------
/static/scss/index.scss:
--------------------------------------------------------------------------------
1 | /*
2 | (C) 2017 David Lettier
3 | lettier.com
4 | */
5 |
6 | $laptopLWidth: 1440px;
7 | $laptopWidth: 1024px;
8 | $tabletWidth: 768px;
9 |
10 | $color1: rgba(51, 55, 69, 1);
11 | $color2: rgba(245, 47, 87, 1);
12 | $color3: rgba(76, 75, 99, 1);
13 | $color4: rgba(175, 190, 209, 1);
14 | $color5: rgba(237, 237, 244, 1);
15 |
16 | @mixin laptopL {
17 | @media (max-width: #{$laptopLWidth}) {
18 | @content;
19 | }
20 | }
21 |
22 | @mixin laptop {
23 | @media (max-width: #{$laptopWidth}) {
24 | @content;
25 | }
26 | }
27 |
28 | @mixin tablet {
29 | @media (max-width: #{$tabletWidth}) {
30 | @content;
31 | }
32 | }
33 |
34 |
35 | body {
36 | font-family: sans-serif;
37 | margin-top: 25px;
38 | margin-left: 25px;
39 | background-color: #343438;
40 | color: white;
41 | height: 100%;
42 | line-height: 2;
43 | }
44 | input {
45 | margin-right: 4px;
46 | outline: none;
47 | border: none;
48 | border-radius: 1px;
49 | padding: 2px;
50 | font-size: 20px;
51 | width: 210px;
52 | background-color: whitesmoke;
53 | color: #222;
54 | }
55 | li {
56 | list-style: none;
57 | margin-top: 3px;
58 | }
59 | button {
60 | background-color: #6f6cb9;
61 | color: white;
62 | font-weight: bold;
63 | margin: 2px;
64 | border-style: none;
65 | border-radius: 1px;
66 | outline: none;
67 | font-size: 20px;
68 | cursor: pointer;
69 | -webkit-box-shadow: 0px 3px 3px 0px #190d25;
70 | -moz-box-shadow: 0px 3px 3px 0px #190d25;
71 | box-shadow: 0px 3px 3px 0px #190d25;
72 | }
73 | #pageContainer {
74 | height: 100%;
75 | }
76 | #chartContainer {
77 | margin-right: 10px;
78 | }
79 | #instructionsContainer {
80 | margin-bottom: 20px;
81 | }
82 | #uiContainer {
83 | margin-left: 10px;
84 | }
85 | #logoContainer {
86 | position: absolute;
87 | bottom: 0px;
88 | right: 0px;
89 | clear: both;
90 | }
91 | #logo {
92 | width: 250px;
93 | height: 250px;
94 | @include laptopL {
95 | width: 200px;
96 | height: 200px;
97 | }
98 | @include laptop {
99 | width: 150px;
100 | height: 150px;
101 | }
102 | @include tablet {
103 | width: 100px;
104 | height: 100px;
105 | }
106 | }
107 | .runButton {
108 | background-color: #00c17c;
109 | }
110 | .removeButton {
111 | background-color: #f52f57;
112 | }
113 | .randomPointsButton {
114 | background-color: #4d98c5;
115 | }
116 | .defaultCursor {
117 | cursor: default;
118 | }
119 | .row {
120 | display: flex;
121 | flex-direction: row;
122 | }
123 |
--------------------------------------------------------------------------------
/src/Matrix.purs:
--------------------------------------------------------------------------------
1 | {-
2 | (C) 2017 David Lettier
3 | lettier.com
4 | -}
5 |
6 | module Matrix where
7 |
8 | import Prelude
9 |
10 | import Data.Ord (abs)
11 | import Data.Foldable (foldl, sum)
12 | import Data.Tuple (Tuple(..), fst, snd)
13 | import Data.Array (head, length, null, range, slice, tail, updateAt, zip, (!!))
14 | import Data.Either (Either(..))
15 | import Data.Maybe (Maybe(Just, Nothing), fromMaybe, isNothing)
16 |
17 | type Vector = Array Number
18 | type Matrix = Array Vector
19 |
20 | invertMatrix :: Matrix -> Tuple (Either String Matrix) Matrix
21 | invertMatrix matrix
22 | | null matrix = Tuple (Left "Empty matrix") (identityMatrix (length matrix))
23 | | not $ isSquareMatrix matrix = Tuple (Left "Not a square matrix") (identityMatrix (length matrix))
24 | | containsZeroRowOrCol matrix = Tuple (Left "Contains zero row or column") (identityMatrix (length matrix))
25 | | otherwise = result
26 | where
27 | matrixSize = length matrix
28 | identity = identityMatrix matrixSize
29 | result :: Tuple (Either String Matrix) Matrix
30 | result = foldl folder (Tuple (Right matrix) identity) (matrixToRange matrix)
31 | folder :: Tuple (Either String Matrix) Matrix -> Int -> Tuple (Either String Matrix) Matrix
32 | folder t@(Tuple acc@(Left _) _) _ = t
33 | folder t@(Tuple acc@(Right a) b) diagonal =
34 | if containsZeroRowOrCol a || null a || isNothing maybeDivisorA || divisorA == 0.0
35 | then (Tuple (Left "Cannot invert") b)
36 | else (Tuple (Right clearedA) clearedB)
37 | where
38 | swapped = swapWithValidRow (Tuple a b) diagonal
39 | swappedA = fst swapped
40 | swappedB = snd swapped
41 | divisorRowA = fromMaybe [] (swappedA !! diagonal)
42 | maybeDivisorA = divisorRowA !! diagonal
43 | divisorA = fromMaybe defaultMatrixValue maybeDivisorA
44 | multiplierA = 1.0 / divisorA
45 | multipliedA = multiplyRow swappedA diagonal multiplierA
46 | multipliedB = multiplyRow swappedB diagonal multiplierA
47 | cleared = clearColumnExceptPivot (Tuple multipliedA multipliedB) (Tuple diagonal diagonal)
48 | clearedA = fst cleared
49 | clearedB = snd cleared
50 |
51 | multiplyMatrices :: Matrix -> Matrix -> Maybe Matrix
52 | multiplyMatrices _ [] = Nothing
53 | multiplyMatrices [] _ = Nothing
54 | multiplyMatrices aMat bMat = if aMatColNum /= bMatRowNum then Nothing else Just cMat
55 | where
56 | aMatColNum :: Int
57 | aMatColNum = foldl (\ acc r -> length r) 0 aMat
58 | bMatRowNum :: Int
59 | bMatRowNum = length bMat
60 | tBMat :: Matrix
61 | tBMat = transpose bMat
62 | cMat :: Matrix
63 | cMat = map (\ r ->
64 | map (\ c ->
65 | sum $ map (\ (Tuple a b) ->
66 | a * b
67 | ) (zip r c)
68 | ) tBMat
69 | ) aMat
70 |
71 | defaultMatrix :: Int -> Matrix
72 | defaultMatrix size = buildMatrix size value
73 | where
74 | value _ _ = defaultMatrixValue
75 |
76 | identityMatrix :: Int -> Matrix
77 | identityMatrix size = buildMatrix size value
78 | where
79 | value row col | row == col = 1.0
80 | | otherwise = 0.0
81 |
82 | buildMatrix :: Int -> (Int -> Int -> Number) -> Matrix
83 | buildMatrix 0 _ = []
84 | buildMatrix size f = map (\ row -> map (\ col -> f row col) matrixRange) matrixRange
85 | where
86 | matrixRange = range 0 (size - 1)
87 |
88 | matrixSizeValid :: Int -> Boolean
89 | matrixSizeValid size = size <= maxMatrixSize && size >= minMatrixSize
90 |
91 | maybeMatrixValue :: Matrix -> Int -> Int -> Maybe Number
92 | maybeMatrixValue matrix row col = case matrix !! row of
93 | Nothing -> Nothing
94 | Just x -> x !! col
95 |
96 | matrixRow :: Matrix -> Int -> Vector
97 | matrixRow matrix i = fromMaybe [] (matrix !! i)
98 |
99 | firstValidRow :: Matrix -> Int -> Int -> Maybe Int
100 | firstValidRow [] _ _ = Nothing
101 | firstValidRow matrix atRowOrBelow inCol = (foldl folder { index: Nothing, value: Nothing} tuples).index
102 | where
103 | matrixLength = length matrix
104 | lastRow = matrixLength - 1
105 | rowRange = range atRowOrBelow lastRow
106 | column = slice atRowOrBelow matrixLength (matrixRow (transpose matrix) inCol)
107 | tuples = zip rowRange column
108 | folder :: { index :: Maybe Int, value :: Maybe Number } -> Tuple Int Number -> { index :: Maybe Int, value :: Maybe Number }
109 | folder { index: Nothing, value: Nothing} (Tuple a b) = { index: (Just a), value: (Just b) }
110 | folder r@{ index: (Just x), value: (Just y)} (Tuple a b) =
111 | if abs y == 1.0
112 | then r
113 | else
114 | if abs b >= abs y || abs b == 1.0
115 | then { index: (Just a), value: (Just b) }
116 | else r
117 | folder _ _ = { index: Nothing, value: Nothing }
118 |
119 | swapWithValidRow :: Tuple Matrix Matrix -> Int -> Tuple Matrix Matrix
120 | swapWithValidRow t@(Tuple a b) diagonal = Tuple a' b'
121 | where
122 | row = firstValidRow a diagonal diagonal
123 | yesSwap = case row of
124 | Nothing -> false
125 | Just r -> r /= diagonal
126 | swapIfYes m =
127 | if yesSwap
128 | then swapRows m diagonal (fromMaybe diagonal row)
129 | else m
130 | a' = swapIfYes a
131 | b' = swapIfYes b
132 |
133 | transpose :: Matrix -> Matrix
134 | transpose [] = []
135 | transpose matrix = transpose' matrix []
136 | where
137 | transpose' :: Matrix -> Matrix -> Matrix
138 | transpose' old new = if arrayHasNothing maybeHeads then new else transpose' tails (new <> [heads])
139 | where
140 | maybeHeads = map head old
141 | maybeTails = map tail old
142 | heads = map (fromMaybe 0.0) maybeHeads
143 | tails = map (fromMaybe []) maybeTails
144 | arrayHasNothing :: forall a. Array (Maybe a) -> Boolean
145 | arrayHasNothing array = case array !! 0 of
146 | Nothing -> true
147 | (Just x) -> isNothing x
148 |
149 | swapRows :: Matrix -> Int -> Int -> Matrix
150 | swapRows [] _ _ = []
151 | swapRows matrix a b = fromMaybe [] (updateRow b rowA (updateRow a rowB (Just matrix)))
152 | where
153 | rowA :: Maybe Vector
154 | rowA = matrix !! a
155 | rowB :: Maybe Vector
156 | rowB = matrix !! b
157 | updateRow :: Int -> Maybe Vector -> Maybe Matrix -> Maybe Matrix
158 | updateRow i (Just row) (Just matrix') = updateAt i row matrix'
159 | updateRow _ _ _ = Nothing
160 |
161 | multiplyRow :: Matrix -> Int -> Number -> Matrix
162 | multiplyRow [] _ _ = []
163 | multiplyRow matrix row multiplier = map (\ row' ->
164 | if row == row'
165 | then map (\ value -> value * multiplier) (matrixRow matrix row')
166 | else matrixRow matrix row'
167 | ) (matrixToRange matrix)
168 |
169 | clearValue :: Tuple Matrix Matrix -> Tuple Int Int -> Tuple Int Int -> Tuple Matrix Matrix
170 | clearValue (Tuple aMat bMat) pivot@(Tuple pRow pCol) target@(Tuple tRow tCol) = Tuple aMat' bMat'
171 | where
172 | pivotRowA :: Vector
173 | pivotRowA = matrixRow aMat pRow
174 | targetRowA :: Vector
175 | targetRowA = matrixRow aMat tRow
176 | pivotValueA :: Number
177 | pivotValueA = rowValue pivotRowA pCol
178 | targetValueA :: Number
179 | targetValueA = rowValue targetRowA tCol
180 | aMat' :: Matrix
181 | aMat' = multiplyAndSubtractRows aMat tRow pRow pivotValueA targetValueA
182 | bMat' :: Matrix
183 | bMat' = multiplyAndSubtractRows bMat tRow pRow pivotValueA targetValueA
184 | rowValue :: Vector -> Int -> Number
185 | rowValue row col = fromMaybe defaultMatrixValue (row !! col)
186 | multiplyAndSubtractRows :: Matrix -> Int -> Int -> Number -> Number -> Matrix
187 | multiplyAndSubtractRows
188 | matrix
189 | leftSideRow
190 | rightSideRow
191 | leftMultiplier
192 | rightMultiplier
193 | = map (\ row -> if row == leftSideRow
194 | then leftRowValues'
195 | else matrixRow matrix row
196 | ) (matrixToRange matrix)
197 | where
198 | leftRowValues = matrixRow matrix leftSideRow
199 | rightRowValues = matrixRow matrix rightSideRow
200 | leftRowValues' = map (\ (Tuple l r) ->
201 | leftMultiplier * l - rightMultiplier * r
202 | ) (zip leftRowValues rightRowValues)
203 |
204 | clearColumnExceptPivot :: Tuple Matrix Matrix -> Tuple Int Int -> Tuple Matrix Matrix
205 | clearColumnExceptPivot t@(Tuple aMat bMat) pivot@(Tuple pRow pCol) = t'
206 | where
207 | t' :: Tuple Matrix Matrix
208 | t' = foldl folder t (matrixToRange aMat)
209 | folder :: Tuple Matrix Matrix -> Int -> Tuple Matrix Matrix
210 | folder acc@(Tuple aMat' bMat') row =
211 | if row == pRow
212 | then acc
213 | else clearValue acc pivot (Tuple row pCol)
214 |
215 | containsZeroRowOrCol :: Matrix -> Boolean
216 | containsZeroRowOrCol matrix = containsZeroRow matrix || containsZeroCol matrix
217 |
218 | containsZeroCol :: Matrix -> Boolean
219 | containsZeroCol = containsZeroRow <<< transpose
220 |
221 | containsZeroRow :: Matrix -> Boolean
222 | containsZeroRow = foldl (\ acc row -> acc || foldl (\ acc' value -> acc' && value == 0.0) true row) false
223 |
224 | isSquareMatrix :: Matrix -> Boolean
225 | isSquareMatrix matrix = foldl (\ acc row -> acc && length row == matrixLength) true matrix
226 | where
227 | matrixLength = length matrix
228 |
229 | matrixToRange :: Matrix -> Array Int
230 | matrixToRange [] = []
231 | matrixToRange matrix = (range 0 (length matrix - 1))
232 |
233 | maxMatrixSize :: Int
234 | maxMatrixSize = 10
235 |
236 | minMatrixSize :: Int
237 | minMatrixSize = 2
238 |
239 | defaultMatrixValue :: Number
240 | defaultMatrixValue = 0.0
241 |
--------------------------------------------------------------------------------
/src/LinearRegression.purs:
--------------------------------------------------------------------------------
1 | {-
2 | (C) 2017 David Lettier
3 | lettier.com
4 | -}
5 |
6 | module LinearRegression (
7 | runLinearRegressionWithUnscaled
8 | , calculatePressStatistic
9 | ) where
10 |
11 | import Prelude
12 |
13 | import Math (pow)
14 |
15 | import Data.Ord (abs)
16 | import Data.Maybe (Maybe(..), fromMaybe, isNothing)
17 | import Data.Either (Either(..))
18 | import Data.Foldable (sum, foldl)
19 | import Data.Array (zip, (!!), range, length)
20 | import Data.Tuple (Tuple(..))
21 |
22 | import Utils (lengthNum, containsNothing)
23 |
24 | import Matrix (Vector, Matrix, transpose, multiplyMatrices, invertMatrix)
25 |
26 | runLinearRegressionWithUnscaled :: Int -> Number -> Number -> Vector -> Vector -> Matrix -> Vector
27 | runLinearRegressionWithUnscaled
28 | maxIterations
29 | maxCost
30 | learningRate
31 | coefficients
32 | regressands
33 | unscaledDesignMatrix
34 | = if containsNothing unscaledUpdatedCoefficents then [] else map (fromMaybe 0.0) unscaledUpdatedCoefficents
35 | where
36 | transposedUnscaledDesignMatrix = transpose unscaledDesignMatrix
37 | maybeMeans = map mean transposedUnscaledDesignMatrix
38 | maybeStandardDeviations = map (\ (Tuple m v) ->
39 | standardDeviation m v
40 | ) (zip maybeMeans transposedUnscaledDesignMatrix)
41 | scaledTransposedDesignMatrix = scaleTransposedDesignMatrix maybeMeans maybeStandardDeviations transposedUnscaledDesignMatrix
42 | scaledDesignMatrix = transpose scaledTransposedDesignMatrix
43 | scaledUpdatedCoefficents =
44 | runLinearRegressionWithScaled
45 | 0
46 | maxIterations
47 | maxCost
48 | learningRate
49 | coefficients
50 | regressands
51 | scaledDesignMatrix
52 | unscaledUpdatedCoefficents = unscaleCoefficients maybeMeans maybeStandardDeviations scaledUpdatedCoefficents
53 |
54 | runLinearRegressionWithScaled :: Int -> Int -> Number -> Number -> Vector -> Vector -> Matrix -> Vector
55 | runLinearRegressionWithScaled
56 | currentIteration
57 | maxIterations
58 | maxCost
59 | learningRate
60 | coefficients
61 | regressands
62 | scaledDesignMatrix
63 | =
64 | if
65 | currentCalculatedCost <= maxCost ||
66 | currentIteration >= maxIterations ||
67 | abs (currentCalculatedCost - previousCalculatedCost) == 0.0
68 | then coefficients'
69 | else
70 | runLinearRegressionWithScaled
71 | (currentIteration + 1)
72 | maxIterations
73 | maxCost
74 | learningRate'
75 | coefficients'
76 | regressands
77 | scaledDesignMatrix
78 | where
79 | updatedCoefficients = updateCoefficients learningRate coefficients scaledDesignMatrix regressands
80 | previousCalculatedCost = calculateCost coefficients scaledDesignMatrix regressands
81 | currentCalculatedCost = calculateCost updatedCoefficients scaledDesignMatrix regressands
82 | -- Bold Driver - http://www.willamette.edu/~gorr/classes/cs449/momrate.html
83 | coefficients' = if previousCalculatedCost < currentCalculatedCost then coefficients else updatedCoefficients
84 | learningRate' =
85 | if previousCalculatedCost < currentCalculatedCost
86 | then learningRate - (learningRate * 0.5)
87 | else learningRate + (learningRate * 0.5)
88 |
89 | hypothesis :: Vector -> Vector -> Number
90 | hypothesis coefficients regressors = sum $ map (\ (Tuple c r) -> c * r) tuples
91 | where
92 | tuples = zip coefficients ([1.0] <> regressors)
93 |
94 | calculateCost :: Vector -> Matrix -> Vector -> Number
95 | calculateCost _ _ [] = 0.0
96 | calculateCost coefficients designMatrix regressands = sum errors / size
97 | where
98 | size = lengthNum regressands
99 | regressands' = map (hypothesis coefficients) designMatrix
100 | errors = map (\ (Tuple y' y) -> pow (y' - y) 2.0) (zip regressands' regressands)
101 |
102 | partialDerivative :: Int -> Vector -> Matrix -> Vector -> Number
103 | partialDerivative _ [] _ _ = 0.0
104 | partialDerivative _ _ [] _ = 0.0
105 | partialDerivative _ _ _ [] = 0.0
106 | partialDerivative i coefficients designMatrix regressands = if i < 0 then 0.0 else result
107 | where
108 | size = lengthNum regressands
109 | tuples = zip regressands designMatrix
110 | result = (1.0 / size) * (sum (map mapper tuples))
111 | mapper :: Tuple Number Vector -> Number
112 | mapper (Tuple _ []) = 0.0
113 | mapper (Tuple y regressors) = ((hypothesis coefficients regressors) - y) * xj
114 | where
115 | xj = if i == 0 then 1.0 else (fromMaybe 0.0 (regressors !! (i - 1)))
116 |
117 | updateCoefficients :: Number -> Vector -> Matrix -> Vector -> Vector
118 | updateCoefficients learningRate coefficients designMatrix regressands = result
119 | where
120 | paritalDerivativeMapper i = partialDerivative i coefficients designMatrix regressands
121 | gradient = map paritalDerivativeMapper (range 0 (length coefficients - 1))
122 | result = map (\ (Tuple o g) -> o - (learningRate * g)) (zip coefficients gradient)
123 |
124 | scaleTransposedDesignMatrix :: Array (Maybe Number) -> Array (Maybe Number) -> Matrix -> Matrix
125 | scaleTransposedDesignMatrix [] _ _ = []
126 | scaleTransposedDesignMatrix _ [] _ = []
127 | scaleTransposedDesignMatrix _ _ [] = []
128 | scaleTransposedDesignMatrix maybeMeans maybeStandardDeviations transposedDesignMatrix = map scaleVector range'
129 | where
130 | scaleValue' :: Maybe Number -> Maybe Number -> Number -> Number
131 | scaleValue' mm ms e = fromMaybe e (scaleValue mm ms e)
132 | scaleVector :: Int -> Vector
133 | scaleVector i = map (scaleValue' (getMaybeMean i) (getMaybeStandardDeviation i)) (getRow i)
134 | range' :: Array Int
135 | range' = range 0 (length transposedDesignMatrix - 1)
136 | getMaybeMean :: Int -> Maybe Number
137 | getMaybeMean i = fromMaybe Nothing (maybeMeans !! i)
138 | getMaybeStandardDeviation :: Int -> Maybe Number
139 | getMaybeStandardDeviation i = fromMaybe Nothing (maybeStandardDeviations !! i)
140 | getRow :: Int -> Vector
141 | getRow i = fromMaybe [] (transposedDesignMatrix !! i)
142 |
143 | scaleValue :: Maybe Number -> Maybe Number -> Number -> Maybe Number
144 | scaleValue _ (Just 0.0) unscaledValue = Nothing
145 | scaleValue (Just mean') (Just standardDeviation') unscaledValue = Just ((unscaledValue - mean') / standardDeviation')
146 | scaleValue _ _ _ = Nothing
147 |
148 | unscaleCoefficients :: Array (Maybe Number) -> Array (Maybe Number) -> Vector -> Array (Maybe Number)
149 | unscaleCoefficients [] _ _ = []
150 | unscaleCoefficients _ [] _ = []
151 | unscaleCoefficients _ _ [] = []
152 | unscaleCoefficients
153 | maybeMeans
154 | maybeStandardDeviations
155 | coefficients
156 | =
157 | if
158 | length maybeMeans /= length maybeStandardDeviations ||
159 | length maybeMeans /= (length coefficients - 1) ||
160 | containsNothing maybeMeans ||
161 | containsNothing maybeStandardDeviations
162 | then []
163 | else map (\ i -> extractAndApply i unscale) (range 0 (length coefficients - 1))
164 | where
165 | maybeMeans' = [Nothing] <> maybeMeans
166 | maybeStandardDeviations' = [Nothing] <> maybeStandardDeviations
167 | extractAndApply :: Int -> (Int -> Number -> Number -> Number -> Maybe Number) -> Maybe Number
168 | extractAndApply index f =
169 | if
170 | index < 0 ||
171 | index >= length maybeMeans' ||
172 | index >= length maybeStandardDeviations' ||
173 | index >= length coefficients
174 | then Nothing
175 | else f index (fromMaybe 0.0 maybeMean) (fromMaybe 0.0 maybeStandardDeviation) coefficient
176 | where
177 | maybeMean :: Maybe Number
178 | maybeMean = fromMaybe Nothing (maybeMeans' !! index)
179 | maybeStandardDeviation :: Maybe Number
180 | maybeStandardDeviation = fromMaybe Nothing (maybeStandardDeviations' !! index)
181 | coefficient :: Number
182 | coefficient = fromMaybe 0.0 (coefficients !! index)
183 | unscale :: Int -> Number -> Number -> Number -> Maybe Number
184 | unscale 0 _ _ coefficient =
185 | if containsNothing summands
186 | then Nothing
187 | else Just (coefficient - summation)
188 | where
189 | summation :: Number
190 | summation = foldl (\ acc x -> acc + (fromMaybe 0.0 x)) 0.0 summands
191 | summands :: Array (Maybe Number)
192 | summands = map (\ i ->
193 | extractAndApply i (\ _ m s c ->
194 | if s == 0.0 then Nothing else Just (c * (m / s))
195 | )
196 | ) (range 1 (length coefficients - 1))
197 | unscale _ _ 0.0 _ = Nothing
198 | unscale index _ std coefficient = if index < 0 then Nothing else Just (coefficient / std)
199 |
200 | calculatePressStatistic :: Vector -> Vector -> Matrix -> Maybe Number
201 | calculatePressStatistic [] _ _ = Nothing
202 | calculatePressStatistic _ [] _ = Nothing
203 | calculatePressStatistic _ _ [] = Nothing
204 | calculatePressStatistic regressands coefficients designMatrix = maybeSummation
205 | where
206 | predictions :: Vector
207 | predictions = map (\ regressors -> hypothesis coefficients regressors) designMatrix
208 | residuals :: Vector
209 | residuals = map (\ (Tuple y y') -> y - y') (zip regressands predictions)
210 | hatMatrix :: Matrix
211 | hatMatrix = fromMaybe [] (calculateHatMatrix designMatrix)
212 | folder :: Maybe Number -> Int -> Maybe Number
213 | folder Nothing _ = Nothing
214 | folder (Just acc) i =
215 | if
216 | isNothing maybeResidual ||
217 | isNothing maybeTerm ||
218 | 1.0 - term == 0.0
219 | then Nothing
220 | else Just (acc + (pow (residual / (1.0 - term)) 2.0))
221 | where
222 | maybeResidual :: Maybe Number
223 | maybeResidual = residuals !! i
224 | residual :: Number
225 | residual = fromMaybe 0.0 maybeResidual
226 | row :: Vector
227 | row = fromMaybe [] (hatMatrix !! i)
228 | maybeTerm :: Maybe Number
229 | maybeTerm = row !! i
230 | term :: Number
231 | term = fromMaybe 0.0 maybeTerm
232 | maybeSummation :: Maybe Number
233 | maybeSummation = foldl folder (Just 0.0) (range 0 (length regressands - 1))
234 |
235 | calculateHatMatrix :: Matrix -> Maybe Matrix
236 | calculateHatMatrix [] = Nothing
237 | calculateHatMatrix designMatrix = xxTxIxT
238 | where
239 | xT :: Matrix
240 | xT = transpose designMatrix
241 | xTx :: Matrix
242 | xTx = fromMaybe [] (multiplyMatrices xT designMatrix)
243 | xTxI :: Matrix
244 | xTxI =
245 | case invertMatrix xTx of
246 | (Tuple (Right i) m) -> m
247 | _ -> []
248 | xxTxI :: Matrix
249 | xxTxI = fromMaybe [] (multiplyMatrices designMatrix xTxI)
250 | xxTxIxT :: Maybe Matrix
251 | xxTxIxT = multiplyMatrices xxTxI xT
252 |
253 | standardDeviation :: Maybe Number -> Vector -> Maybe Number
254 | standardDeviation _ [] = Nothing
255 | standardDeviation (Just mean') es = Just (pow base 0.5)
256 | where
257 | oneOverLength = 1.0 / lengthNum es
258 | summation = sum $ map (\ e -> pow (e - mean') 2.0) es
259 | base = oneOverLength * summation
260 | standardDeviation _ _ = Nothing
261 |
262 | mean :: Vector -> Maybe Number
263 | mean [] = Nothing
264 | mean es = Just (sum es / lengthNum es)
265 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 |
2 | Apache License
3 | Version 2.0, January 2004
4 | http://www.apache.org/licenses/
5 |
6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7 |
8 | 1. Definitions.
9 |
10 | "License" shall mean the terms and conditions for use, reproduction,
11 | and distribution as defined by Sections 1 through 9 of this document.
12 |
13 | "Licensor" shall mean the copyright owner or entity authorized by
14 | the copyright owner that is granting the License.
15 |
16 | "Legal Entity" shall mean the union of the acting entity and all
17 | other entities that control, are controlled by, or are under common
18 | control with that entity. For the purposes of this definition,
19 | "control" means (i) the power, direct or indirect, to cause the
20 | direction or management of such entity, whether by contract or
21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
22 | outstanding shares, or (iii) beneficial ownership of such entity.
23 |
24 | "You" (or "Your") shall mean an individual or Legal Entity
25 | exercising permissions granted by this License.
26 |
27 | "Source" form shall mean the preferred form for making modifications,
28 | including but not limited to software source code, documentation
29 | source, and configuration files.
30 |
31 | "Object" form shall mean any form resulting from mechanical
32 | transformation or translation of a Source form, including but
33 | not limited to compiled object code, generated documentation,
34 | and conversions to other media types.
35 |
36 | "Work" shall mean the work of authorship, whether in Source or
37 | Object form, made available under the License, as indicated by a
38 | copyright notice that is included in or attached to the work
39 | (an example is provided in the Appendix below).
40 |
41 | "Derivative Works" shall mean any work, whether in Source or Object
42 | form, that is based on (or derived from) the Work and for which the
43 | editorial revisions, annotations, elaborations, or other modifications
44 | represent, as a whole, an original work of authorship. For the purposes
45 | of this License, Derivative Works shall not include works that remain
46 | separable from, or merely link (or bind by name) to the interfaces of,
47 | the Work and Derivative Works thereof.
48 |
49 | "Contribution" shall mean any work of authorship, including
50 | the original version of the Work and any modifications or additions
51 | to that Work or Derivative Works thereof, that is intentionally
52 | submitted to Licensor for inclusion in the Work by the copyright owner
53 | or by an individual or Legal Entity authorized to submit on behalf of
54 | the copyright owner. For the purposes of this definition, "submitted"
55 | means any form of electronic, verbal, or written communication sent
56 | to the Licensor or its representatives, including but not limited to
57 | communication on electronic mailing lists, source code control systems,
58 | and issue tracking systems that are managed by, or on behalf of, the
59 | Licensor for the purpose of discussing and improving the Work, but
60 | excluding communication that is conspicuously marked or otherwise
61 | designated in writing by the copyright owner as "Not a Contribution."
62 |
63 | "Contributor" shall mean Licensor and any individual or Legal Entity
64 | on behalf of whom a Contribution has been received by Licensor and
65 | subsequently incorporated within the Work.
66 |
67 | 2. Grant of Copyright License. Subject to the terms and conditions of
68 | this License, each Contributor hereby grants to You a perpetual,
69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70 | copyright license to reproduce, prepare Derivative Works of,
71 | publicly display, publicly perform, sublicense, and distribute the
72 | Work and such Derivative Works in Source or Object form.
73 |
74 | 3. Grant of Patent License. Subject to the terms and conditions of
75 | this License, each Contributor hereby grants to You a perpetual,
76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77 | (except as stated in this section) patent license to make, have made,
78 | use, offer to sell, sell, import, and otherwise transfer the Work,
79 | where such license applies only to those patent claims licensable
80 | by such Contributor that are necessarily infringed by their
81 | Contribution(s) alone or by combination of their Contribution(s)
82 | with the Work to which such Contribution(s) was submitted. If You
83 | institute patent litigation against any entity (including a
84 | cross-claim or counterclaim in a lawsuit) alleging that the Work
85 | or a Contribution incorporated within the Work constitutes direct
86 | or contributory patent infringement, then any patent licenses
87 | granted to You under this License for that Work shall terminate
88 | as of the date such litigation is filed.
89 |
90 | 4. Redistribution. You may reproduce and distribute copies of the
91 | Work or Derivative Works thereof in any medium, with or without
92 | modifications, and in Source or Object form, provided that You
93 | meet the following conditions:
94 |
95 | (a) You must give any other recipients of the Work or
96 | Derivative Works a copy of this License; and
97 |
98 | (b) You must cause any modified files to carry prominent notices
99 | stating that You changed the files; and
100 |
101 | (c) You must retain, in the Source form of any Derivative Works
102 | that You distribute, all copyright, patent, trademark, and
103 | attribution notices from the Source form of the Work,
104 | excluding those notices that do not pertain to any part of
105 | the Derivative Works; and
106 |
107 | (d) If the Work includes a "NOTICE" text file as part of its
108 | distribution, then any Derivative Works that You distribute must
109 | include a readable copy of the attribution notices contained
110 | within such NOTICE file, excluding those notices that do not
111 | pertain to any part of the Derivative Works, in at least one
112 | of the following places: within a NOTICE text file distributed
113 | as part of the Derivative Works; within the Source form or
114 | documentation, if provided along with the Derivative Works; or,
115 | within a display generated by the Derivative Works, if and
116 | wherever such third-party notices normally appear. The contents
117 | of the NOTICE file are for informational purposes only and
118 | do not modify the License. You may add Your own attribution
119 | notices within Derivative Works that You distribute, alongside
120 | or as an addendum to the NOTICE text from the Work, provided
121 | that such additional attribution notices cannot be construed
122 | as modifying the License.
123 |
124 | You may add Your own copyright statement to Your modifications and
125 | may provide additional or different license terms and conditions
126 | for use, reproduction, or distribution of Your modifications, or
127 | for any such Derivative Works as a whole, provided Your use,
128 | reproduction, and distribution of the Work otherwise complies with
129 | the conditions stated in this License.
130 |
131 | 5. Submission of Contributions. Unless You explicitly state otherwise,
132 | any Contribution intentionally submitted for inclusion in the Work
133 | by You to the Licensor shall be under the terms and conditions of
134 | this License, without any additional terms or conditions.
135 | Notwithstanding the above, nothing herein shall supersede or modify
136 | the terms of any separate license agreement you may have executed
137 | with Licensor regarding such Contributions.
138 |
139 | 6. Trademarks. This License does not grant permission to use the trade
140 | names, trademarks, service marks, or product names of the Licensor,
141 | except as required for reasonable and customary use in describing the
142 | origin of the Work and reproducing the content of the NOTICE file.
143 |
144 | 7. Disclaimer of Warranty. Unless required by applicable law or
145 | agreed to in writing, Licensor provides the Work (and each
146 | Contributor provides its Contributions) on an "AS IS" BASIS,
147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148 | implied, including, without limitation, any warranties or conditions
149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150 | PARTICULAR PURPOSE. You are solely responsible for determining the
151 | appropriateness of using or redistributing the Work and assume any
152 | risks associated with Your exercise of permissions under this License.
153 |
154 | 8. Limitation of Liability. In no event and under no legal theory,
155 | whether in tort (including negligence), contract, or otherwise,
156 | unless required by applicable law (such as deliberate and grossly
157 | negligent acts) or agreed to in writing, shall any Contributor be
158 | liable to You for damages, including any direct, indirect, special,
159 | incidental, or consequential damages of any character arising as a
160 | result of this License or out of the use or inability to use the
161 | Work (including but not limited to damages for loss of goodwill,
162 | work stoppage, computer failure or malfunction, or any and all
163 | other commercial damages or losses), even if such Contributor
164 | has been advised of the possibility of such damages.
165 |
166 | 9. Accepting Warranty or Additional Liability. While redistributing
167 | the Work or Derivative Works thereof, You may choose to offer,
168 | and charge a fee for, acceptance of support, warranty, indemnity,
169 | or other liability obligations and/or rights consistent with this
170 | License. However, in accepting such obligations, You may act only
171 | on Your own behalf and on Your sole responsibility, not on behalf
172 | of any other Contributor, and only if You agree to indemnify,
173 | defend, and hold each Contributor harmless for any liability
174 | incurred by, or claims asserted against, such Contributor by reason
175 | of your accepting any such warranty or additional liability.
176 |
177 | END OF TERMS AND CONDITIONS
178 |
179 | APPENDIX: How to apply the Apache License to your work.
180 |
181 | To apply the Apache License to your work, attach the following
182 | boilerplate notice, with the fields enclosed by brackets "[]"
183 | replaced with your own identifying information. (Don't include
184 | the brackets!) The text should be enclosed in the appropriate
185 | comment syntax for the file format. We also recommend that a
186 | file or class name and description of purpose be included on the
187 | same "printed page" as the copyright notice for easier
188 | identification within third-party archives.
189 |
190 | Copyright 2017 David Lettier
191 |
192 | Licensed under the Apache License, Version 2.0 (the "License");
193 | you may not use this file except in compliance with the License.
194 | You may obtain a copy of the License at
195 |
196 | http://www.apache.org/licenses/LICENSE-2.0
197 |
198 | Unless required by applicable law or agreed to in writing, software
199 | distributed under the License is distributed on an "AS IS" BASIS,
200 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201 | See the License for the specific language governing permissions and
202 | limitations under the License.
203 |
--------------------------------------------------------------------------------
/src/UI.purs:
--------------------------------------------------------------------------------
1 | {-
2 | (C) 2017 David Lettier
3 | lettier.com
4 | -}
5 |
6 | module UI where
7 |
8 | import Prelude
9 |
10 | import Data.Generic (gShow)
11 | import Data.Foldable (foldr)
12 | import Data.Array (drop, (:), length, head, last, range, filter)
13 | import Data.List.Lazy (replicateM, (!!))
14 | import Data.Maybe (Maybe(..), isNothing, fromMaybe, isJust)
15 |
16 | import Control.Monad.Eff.Random (RANDOM, randomRange)
17 |
18 | import Control.Monad.Aff (Aff)
19 | import Control.Monad.Aff.Free (class Affable)
20 | import Control.Monad.Aff.Console (CONSOLE, log)
21 |
22 | import Halogen as H
23 | import Halogen.HTML.Core (className)
24 | import Halogen.HTML.Events.Indexed as HE
25 | import Halogen.HTML.Properties.Indexed as HP
26 | import Halogen.HTML.Indexed as HH
27 |
28 | import LinearRegression (
29 | runLinearRegressionWithUnscaled
30 | , calculatePressStatistic
31 | )
32 |
33 | import Plot (PLOT, PlotData, makePlot)
34 |
35 | import Utils (maybeNumberToString, stringToMaybeNumber, arrayMinOrMax)
36 |
37 | type Effects eff = H.HalogenEffects (plot :: PLOT, console :: CONSOLE, random :: RANDOM | eff)
38 |
39 | type Point = { id :: Int, x :: Maybe Number, y :: Maybe Number }
40 |
41 | data Query a =
42 | PushPoint a |
43 | PopPoint a |
44 | RemovePoint Int a |
45 | RandomPoints a |
46 | UpdatePointCoordinate Int String String a |
47 | RunLinearRegression a
48 |
49 | type State = {
50 | nextId :: Int
51 | , points :: Array Point
52 | , yIntercept :: Maybe Number
53 | , slope :: Maybe Number
54 | , pressStatistic :: Maybe Number
55 | , running :: Boolean
56 | }
57 |
58 | ui :: forall eff. H.Component State Query (Aff (Effects eff))
59 | ui = H.component { render, eval }
60 | where
61 | render :: State -> H.ComponentHTML Query
62 | render state =
63 | HH.div_ [
64 | HH.div_ [
65 | HH.div_ [
66 | HH.b_ [
67 | HH.text "Status: "
68 | ]
69 | , HH.text
70 | if state.running
71 | then "Running"
72 | else if hasValidPoints state then "Press run" else "Add points"
73 | ]
74 | , HH.div_ [
75 | HH.b_ [
76 | HH.text "Y-Intercept: "
77 | ]
78 | , HH.text
79 | if isJust state.yIntercept && hasValidPoints state
80 | then "" <> (maybeNumberToString state.yIntercept)
81 | else "?"
82 | ]
83 | , HH.div_ [
84 | HH.b_ [
85 | HH.text "Slope: "
86 | ]
87 | , HH.text
88 | if isJust state.slope && hasValidPoints state
89 | then "" <> (maybeNumberToString state.slope)
90 | else "?"
91 | ]
92 | , HH.div_ [
93 | HH.b_ [
94 | HH.text "PRESS Statistic: "
95 | ]
96 | , HH.text
97 | if isJust state.pressStatistic && hasValidPoints state
98 | then "" <> (maybeNumberToString state.pressStatistic)
99 | else "?"
100 | ]
101 | ]
102 | , HH.div_ [
103 | HH.button [
104 | HE.onClick (HE.input_ PushPoint)
105 | ] [
106 | HH.text "Push Point"
107 | ]
108 | , HH.button [
109 | HE.onClick (HE.input_ PopPoint)
110 | ] [
111 | HH.text "Pop Point"
112 | ]
113 | , HH.button [
114 | HE.onClick (HE.input_ RandomPoints)
115 | , HP.class_ (className "randomPointsButton")
116 | ] [
117 | HH.text "Random Points"
118 | ]
119 | , HH.button [
120 | HE.onClick (HE.input_ RunLinearRegression)
121 | , HP.class_ (className "runButton")
122 | ] [
123 | HH.text "Run"
124 | ]
125 | , HH.div_ (
126 | map (\ point ->
127 | HH.li_ [
128 | HH.input [
129 | HP.value (maybeNumberToString point.x)
130 | , HP.placeholder "Input the X Coordinate"
131 | , HE.onValueChange (HE.input (UpdatePointCoordinate point.id "x"))
132 | , HP.disabled state.running
133 | ]
134 | , HH.input [
135 | HP.value (maybeNumberToString point.y)
136 | , HP.placeholder "Input the Y Coordinate"
137 | , HE.onValueChange (HE.input (UpdatePointCoordinate point.id "y"))
138 | , HP.disabled state.running
139 | ]
140 | , HH.button [
141 | HE.onClick (HE.input_ (RemovePoint point.id))
142 | , HP.class_ (className "removeButton")
143 | ] [
144 | HH.text "X"
145 | ]
146 | ]
147 | )
148 | state.points
149 | )
150 | ]
151 | ]
152 | eval :: Query ~> H.ComponentDSL State Query (Aff (Effects eff))
153 | eval (PushPoint next) = do
154 | H.modify (\ state -> state {
155 | nextId = state.nextId + 1
156 | , points = newPoint state.nextId : state.points
157 | , yIntercept = Nothing
158 | , slope = Nothing
159 | , pressStatistic = Nothing
160 | }
161 | )
162 | pure next
163 | eval (PopPoint next) = do
164 | H.modify (\ state -> state {
165 | points = drop 1 state.points
166 | , yIntercept = Nothing
167 | , slope = Nothing
168 | , pressStatistic = Nothing
169 | }
170 | )
171 | currentState <- H.get
172 | _ <- H.fromAff (makePlot (makePlotDataFromState currentState))
173 | pure next
174 | eval (RemovePoint id next) = do
175 | H.modify (\ state -> state {
176 | points = foldr (\ point acc ->
177 | if point.id == id then acc else point : acc
178 | ) [] state.points
179 | , yIntercept = Nothing
180 | , slope = Nothing
181 | , pressStatistic = Nothing
182 | }
183 | )
184 | currentState <- H.get
185 | _ <- H.fromAff (makePlot (makePlotDataFromState currentState))
186 | pure next
187 | eval (RandomPoints next) = do
188 | let numberOfPoints = 10
189 | xs <- H.fromEff (replicateM numberOfPoints (randomRange (-10.0) 10.0))
190 | ys <- H.fromEff (replicateM numberOfPoints (randomRange (-10.0) 10.0))
191 | H.modify (\ state -> state {
192 | points = map (\ i -> {
193 | id: i
194 | , x: xs !! i
195 | , y: ys !! i
196 | }
197 | ) (range 0 (numberOfPoints - 1))
198 | , yIntercept = Nothing
199 | , slope = Nothing
200 | }
201 | )
202 | currentState <- H.get
203 | _ <- H.fromAff (makePlot (makePlotDataFromState currentState))
204 | pure next
205 | eval (UpdatePointCoordinate id key value next) = do
206 | H.modify (\ state -> state {
207 | points = foldr (\ point acc ->
208 | (if point.id == id then updatePointCoordinateFromString point key value else point) : acc
209 | ) [] state.points
210 | , yIntercept = Nothing
211 | , slope = Nothing
212 | , pressStatistic = Nothing
213 | }
214 | )
215 | currentState <- H.get
216 | _ <- H.fromAff (makePlot (makePlotDataFromState currentState))
217 | pure next
218 | eval (RunLinearRegression next) = do
219 | H.modify (\ state ->
220 | state {
221 | yIntercept = Nothing
222 | , slope = Nothing
223 | , pressStatistic = Nothing
224 | , running = true
225 | }
226 | )
227 | currentState <- H.get
228 | let linearRegressionData = dataForLinearRegressionFromState currentState
229 | let result =
230 | runLinearRegressionWithUnscaled
231 | linearRegressionData.maxIterations
232 | linearRegressionData.maxCost
233 | linearRegressionData.learningRate
234 | linearRegressionData.coefficients
235 | linearRegressionData.regressands
236 | linearRegressionData.designMatrix
237 | let pressStatistic =
238 | calculatePressStatistic
239 | linearRegressionData.regressands
240 | result
241 | linearRegressionData.designMatrix
242 | log' (gShow result)
243 | H.modify (\ state ->
244 | state {
245 | yIntercept = head result
246 | , slope = last result
247 | , pressStatistic = pressStatistic
248 | , running = false
249 | }
250 | )
251 | if isJust (head result) && isJust (last result)
252 | then do
253 | currentState' <- H.get
254 | _ <- H.fromAff (makePlot (makePlotDataFromState currentState'))
255 | pure next
256 | else pure next
257 | pure next
258 |
259 | initialState :: State
260 | initialState = {
261 | nextId: 0
262 | , points: []
263 | , yIntercept: Nothing
264 | , slope: Nothing
265 | , pressStatistic: Nothing
266 | , running: false
267 | }
268 |
269 | newPoint :: Int -> Point
270 | newPoint id = { id: id, x: Nothing, y: Nothing }
271 |
272 | updatePointCoordinateFromString :: Point -> String -> String -> Point
273 | updatePointCoordinateFromString point "x" s = point { x = stringToMaybeNumber s }
274 | updatePointCoordinateFromString point "y" s = point { y = stringToMaybeNumber s }
275 | updatePointCoordinateFromString point _ _ = point
276 |
277 | dataForLinearRegressionFromState ::
278 | State ->
279 | {
280 | maxIterations :: Int
281 | , maxCost :: Number
282 | , learningRate :: Number
283 | , coefficients :: Array Number
284 | , regressands :: Array Number
285 | , designMatrix :: Array (Array Number)
286 | }
287 | dataForLinearRegressionFromState state = {
288 | maxIterations: 10000
289 | , maxCost: 1e-11
290 | , learningRate: 0.05
291 | , coefficients: [1.0, 1.0]
292 | , regressands: map (\ { y: y } -> fromMaybe 0.0 y ) validPoints
293 | , designMatrix: map (\ { x: x } -> [fromMaybe 0.0 x]) validPoints
294 | }
295 | where
296 | validPoints = filter pointIsValid state.points
297 |
298 | coords :: State -> Array (Array Number)
299 | coords { points: [] } = []
300 | coords { points: points } = foldr (\ point acc ->
301 | if isNothing point.x || isNothing point.y
302 | then acc
303 | else [fromMaybe 0.0 point.x, fromMaybe 0.0 point.y] : acc
304 | ) [] points
305 |
306 | getXValuesFromState :: State -> Array (Number)
307 | getXValuesFromState { points: points } = foldr (\ point acc ->
308 | if isNothing point.x || isNothing point.y
309 | then acc
310 | else fromMaybe 0.0 point.x : acc
311 | ) [] points
312 |
313 | makePlotDataFromState :: State -> PlotData
314 | makePlotDataFromState state@{
315 | points: points
316 | , yIntercept: (Just yIntercept)
317 | , slope: (Just slope)
318 | } = {
319 | scatter: pointsToScatterData points
320 | , line: if length xValues > 0
321 | then [
322 | {
323 | x: minX
324 | , y: slope * minX + yIntercept
325 | }
326 | , {
327 | x: maxX
328 | , y: slope * maxX + yIntercept
329 | }
330 | ]
331 | else []
332 | }
333 | where
334 | xValues = getXValuesFromState state
335 | minX = arrayMinOrMax min 0.0 xValues
336 | maxX = arrayMinOrMax max 0.0 xValues
337 | makePlotDataFromState state@{
338 | points: points
339 | , yIntercept: Nothing
340 | , slope: Nothing
341 | } = {
342 | scatter: pointsToScatterData points
343 | , line: []
344 | }
345 | makePlotDataFromState state@{
346 | points: points
347 | , yIntercept: (Just _)
348 | , slope: Nothing
349 | } = {
350 | scatter: pointsToScatterData points
351 | , line: []
352 | }
353 | makePlotDataFromState state@{
354 | points: points
355 | , yIntercept: Nothing
356 | , slope: (Just _)
357 | } = {
358 | scatter: pointsToScatterData points
359 | , line: []
360 | }
361 |
362 | pointsToScatterData :: Array Point -> Array { x :: Number, y :: Number }
363 | pointsToScatterData [] = []
364 | pointsToScatterData points = foldr (\ point acc ->
365 | if isNothing point.x || isNothing point.y
366 | then acc
367 | else { x: fromMaybe 0.0 point.x, y: fromMaybe 0.0 point.y } : acc
368 | ) [] points
369 |
370 | hasValidPoints :: State -> Boolean
371 | hasValidPoints { points: [] } = false
372 | hasValidPoints state = (length <<< coords) state > 0
373 |
374 | pointIsValid :: Point -> Boolean
375 | pointIsValid { id: _, x: (Just x), y: (Just y) } = true
376 | pointIsValid _ = false
377 |
378 | log' :: forall a b. Affable (console :: CONSOLE | b) a => String -> a Unit
379 | log' string = H.fromAff $ when debug $ log string
380 |
381 | debug :: Boolean
382 | debug = false
383 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 | abbrev@1:
4 | version "1.0.9"
5 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135"
6 |
7 | acorn@^1.0.3:
8 | version "1.2.2"
9 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-1.2.2.tgz#c8ce27de0acc76d896d2b1fad3df588d9e82f014"
10 |
11 | acorn@^2.7.0:
12 | version "2.7.0"
13 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-2.7.0.tgz#ab6e7d9d886aaca8b085bc3312b79a198433f0e7"
14 |
15 | acorn@^3.1.0:
16 | version "3.3.0"
17 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
18 |
19 | ansi-regex@^2.0.0:
20 | version "2.0.0"
21 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.0.0.tgz#c5061b6e0ef8a81775e50f5d66151bf6bf371107"
22 |
23 | ansi-styles@^2.2.1:
24 | version "2.2.1"
25 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
26 |
27 | anymatch@^1.3.0:
28 | version "1.3.0"
29 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507"
30 | dependencies:
31 | arrify "^1.0.0"
32 | micromatch "^2.1.5"
33 |
34 | aproba@^1.0.3:
35 | version "1.0.4"
36 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.0.4.tgz#2713680775e7614c8ba186c065d4e2e52d1072c0"
37 |
38 | archive-type@^3.0.0, archive-type@^3.0.1:
39 | version "3.2.0"
40 | resolved "https://registry.yarnpkg.com/archive-type/-/archive-type-3.2.0.tgz#9cd9c006957ebe95fadad5bd6098942a813737f6"
41 | dependencies:
42 | file-type "^3.1.0"
43 |
44 | are-we-there-yet@~1.1.2:
45 | version "1.1.2"
46 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz#80e470e95a084794fe1899262c5667c6e88de1b3"
47 | dependencies:
48 | delegates "^1.0.0"
49 | readable-stream "^2.0.0 || ^1.1.13"
50 |
51 | arr-diff@^2.0.0:
52 | version "2.0.0"
53 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
54 | dependencies:
55 | arr-flatten "^1.0.1"
56 |
57 | arr-flatten@^1.0.1:
58 | version "1.0.1"
59 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b"
60 |
61 | array-differ@^1.0.0:
62 | version "1.0.0"
63 | resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031"
64 |
65 | array-filter@~0.0.0:
66 | version "0.0.1"
67 | resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec"
68 |
69 | array-find-index@^1.0.1:
70 | version "1.0.2"
71 | resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
72 |
73 | array-map@~0.0.0:
74 | version "0.0.0"
75 | resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662"
76 |
77 | array-reduce@~0.0.0:
78 | version "0.0.0"
79 | resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b"
80 |
81 | array-uniq@^1.0.0, array-uniq@^1.0.2:
82 | version "1.0.3"
83 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
84 |
85 | array-unique@^0.2.1:
86 | version "0.2.1"
87 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
88 |
89 | arrify@^1.0.0, arrify@~1.0.1:
90 | version "1.0.1"
91 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
92 |
93 | asn1.js@^4.0.0:
94 | version "4.9.1"
95 | resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.1.tgz#48ba240b45a9280e94748990ba597d216617fd40"
96 | dependencies:
97 | bn.js "^4.0.0"
98 | inherits "^2.0.1"
99 | minimalistic-assert "^1.0.0"
100 |
101 | asn1@~0.2.3:
102 | version "0.2.3"
103 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
104 |
105 | assert-plus@^0.2.0:
106 | version "0.2.0"
107 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
108 |
109 | assert-plus@^1.0.0:
110 | version "1.0.0"
111 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
112 |
113 | assert@^1.4.0:
114 | version "1.4.1"
115 | resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91"
116 | dependencies:
117 | util "0.10.3"
118 |
119 | astw@^2.0.0:
120 | version "2.0.0"
121 | resolved "https://registry.yarnpkg.com/astw/-/astw-2.0.0.tgz#08121ac8288d35611c0ceec663f6cd545604897d"
122 | dependencies:
123 | acorn "^1.0.3"
124 |
125 | async-each-series@^1.0.0, async-each-series@^1.1.0:
126 | version "1.1.0"
127 | resolved "https://registry.yarnpkg.com/async-each-series/-/async-each-series-1.1.0.tgz#f42fd8155d38f21a5b8ea07c28e063ed1700b138"
128 |
129 | async-each@^1.0.0:
130 | version "1.0.1"
131 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
132 |
133 | async-foreach@^0.1.3:
134 | version "0.1.3"
135 | resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542"
136 |
137 | async@^1.5.2:
138 | version "1.5.2"
139 | resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
140 |
141 | async@^2.1.2:
142 | version "2.1.4"
143 | resolved "https://registry.yarnpkg.com/async/-/async-2.1.4.tgz#2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4"
144 | dependencies:
145 | lodash "^4.14.0"
146 |
147 | asynckit@^0.4.0:
148 | version "0.4.0"
149 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
150 |
151 | aws-sign2@~0.6.0:
152 | version "0.6.0"
153 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
154 |
155 | aws4@^1.2.1:
156 | version "1.5.0"
157 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755"
158 |
159 | balanced-match@^0.4.1:
160 | version "0.4.2"
161 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
162 |
163 | base64-js@^1.0.2:
164 | version "1.2.0"
165 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1"
166 |
167 | bcrypt-pbkdf@^1.0.0:
168 | version "1.0.0"
169 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz#3ca76b85241c7170bf7d9703e7b9aa74630040d4"
170 | dependencies:
171 | tweetnacl "^0.14.3"
172 |
173 | beeper@^1.0.0:
174 | version "1.1.1"
175 | resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809"
176 |
177 | bin-build@^2.2.0:
178 | version "2.2.0"
179 | resolved "https://registry.yarnpkg.com/bin-build/-/bin-build-2.2.0.tgz#11f8dd61f70ffcfa2bdcaa5b46f5e8fedd4221cc"
180 | dependencies:
181 | archive-type "^3.0.1"
182 | decompress "^3.0.0"
183 | download "^4.1.2"
184 | exec-series "^1.0.0"
185 | rimraf "^2.2.6"
186 | tempfile "^1.0.0"
187 | url-regex "^3.0.0"
188 |
189 | bin-check@^2.0.0:
190 | version "2.0.0"
191 | resolved "https://registry.yarnpkg.com/bin-check/-/bin-check-2.0.0.tgz#86f8e6f4253893df60dc316957f5af02acb05930"
192 | dependencies:
193 | executable "^1.0.0"
194 |
195 | bin-version-check@^2.1.0:
196 | version "2.1.0"
197 | resolved "https://registry.yarnpkg.com/bin-version-check/-/bin-version-check-2.1.0.tgz#e4e5df290b9069f7d111324031efc13fdd11a5b0"
198 | dependencies:
199 | bin-version "^1.0.0"
200 | minimist "^1.1.0"
201 | semver "^4.0.3"
202 | semver-truncate "^1.0.0"
203 |
204 | bin-version@^1.0.0:
205 | version "1.0.4"
206 | resolved "https://registry.yarnpkg.com/bin-version/-/bin-version-1.0.4.tgz#9eb498ee6fd76f7ab9a7c160436f89579435d78e"
207 | dependencies:
208 | find-versions "^1.0.0"
209 |
210 | bin-wrapper@^3.0.2:
211 | version "3.0.2"
212 | resolved "https://registry.yarnpkg.com/bin-wrapper/-/bin-wrapper-3.0.2.tgz#67d3306262e4b1a5f2f88ee23464f6a655677aeb"
213 | dependencies:
214 | bin-check "^2.0.0"
215 | bin-version-check "^2.1.0"
216 | download "^4.0.0"
217 | each-async "^1.1.1"
218 | lazy-req "^1.0.0"
219 | os-filter-obj "^1.0.0"
220 |
221 | binary-extensions@^1.0.0:
222 | version "1.8.0"
223 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774"
224 |
225 | bl@^1.0.0:
226 | version "1.2.0"
227 | resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.0.tgz#1397e7ec42c5f5dc387470c500e34a9f6be9ea98"
228 | dependencies:
229 | readable-stream "^2.0.5"
230 |
231 | block-stream@*:
232 | version "0.0.9"
233 | resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
234 | dependencies:
235 | inherits "~2.0.0"
236 |
237 | bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
238 | version "4.11.6"
239 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215"
240 |
241 | boom@2.x.x:
242 | version "2.10.1"
243 | resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
244 | dependencies:
245 | hoek "2.x.x"
246 |
247 | brace-expansion@^1.0.0:
248 | version "1.1.6"
249 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9"
250 | dependencies:
251 | balanced-match "^0.4.1"
252 | concat-map "0.0.1"
253 |
254 | braces@^1.8.2:
255 | version "1.8.5"
256 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
257 | dependencies:
258 | expand-range "^1.8.1"
259 | preserve "^0.2.0"
260 | repeat-element "^1.1.2"
261 |
262 | brorand@^1.0.1:
263 | version "1.0.6"
264 | resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.0.6.tgz#4028706b915f91f7b349a2e0bf3c376039d216e5"
265 |
266 | browser-pack@^6.0.1:
267 | version "6.0.2"
268 | resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.0.2.tgz#f86cd6cef4f5300c8e63e07a4d512f65fbff4531"
269 | dependencies:
270 | combine-source-map "~0.7.1"
271 | defined "^1.0.0"
272 | JSONStream "^1.0.3"
273 | through2 "^2.0.0"
274 | umd "^3.0.0"
275 |
276 | browser-resolve@^1.11.0, browser-resolve@^1.7.0:
277 | version "1.11.2"
278 | resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce"
279 | dependencies:
280 | resolve "1.1.7"
281 |
282 | browser-split@0.0.1:
283 | version "0.0.1"
284 | resolved "https://registry.yarnpkg.com/browser-split/-/browser-split-0.0.1.tgz#7b097574f8e3ead606fb4664e64adfdda2981a93"
285 |
286 | browserify-aes@^1.0.0, browserify-aes@^1.0.4:
287 | version "1.0.6"
288 | resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a"
289 | dependencies:
290 | buffer-xor "^1.0.2"
291 | cipher-base "^1.0.0"
292 | create-hash "^1.1.0"
293 | evp_bytestokey "^1.0.0"
294 | inherits "^2.0.1"
295 |
296 | browserify-cache-api@^3.0.0:
297 | version "3.0.1"
298 | resolved "https://registry.yarnpkg.com/browserify-cache-api/-/browserify-cache-api-3.0.1.tgz#96247e853f068fd6e0d45cc73f0bb2cd9778ef02"
299 | dependencies:
300 | async "^1.5.2"
301 | through2 "^2.0.0"
302 | xtend "^4.0.0"
303 |
304 | browserify-cipher@^1.0.0:
305 | version "1.0.0"
306 | resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a"
307 | dependencies:
308 | browserify-aes "^1.0.4"
309 | browserify-des "^1.0.0"
310 | evp_bytestokey "^1.0.0"
311 |
312 | browserify-des@^1.0.0:
313 | version "1.0.0"
314 | resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd"
315 | dependencies:
316 | cipher-base "^1.0.1"
317 | des.js "^1.0.0"
318 | inherits "^2.0.1"
319 |
320 | browserify-incremental@^3.0.1:
321 | version "3.1.1"
322 | resolved "https://registry.yarnpkg.com/browserify-incremental/-/browserify-incremental-3.1.1.tgz#0713cb7587247a632a9f08cf1bd169b878b62a8a"
323 | dependencies:
324 | browserify-cache-api "^3.0.0"
325 | JSONStream "^0.10.0"
326 | through2 "^2.0.0"
327 | xtend "^4.0.0"
328 |
329 | browserify-rsa@^4.0.0:
330 | version "4.0.1"
331 | resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524"
332 | dependencies:
333 | bn.js "^4.1.0"
334 | randombytes "^2.0.1"
335 |
336 | browserify-sign@^4.0.0:
337 | version "4.0.0"
338 | resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.0.tgz#10773910c3c206d5420a46aad8694f820b85968f"
339 | dependencies:
340 | bn.js "^4.1.1"
341 | browserify-rsa "^4.0.0"
342 | create-hash "^1.1.0"
343 | create-hmac "^1.1.2"
344 | elliptic "^6.0.0"
345 | inherits "^2.0.1"
346 | parse-asn1 "^5.0.0"
347 |
348 | browserify-zlib@~0.1.2:
349 | version "0.1.4"
350 | resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d"
351 | dependencies:
352 | pako "~0.2.0"
353 |
354 | browserify@^13.1.0:
355 | version "13.3.0"
356 | resolved "https://registry.yarnpkg.com/browserify/-/browserify-13.3.0.tgz#b5a9c9020243f0c70e4675bec8223bc627e415ce"
357 | dependencies:
358 | assert "^1.4.0"
359 | browser-pack "^6.0.1"
360 | browser-resolve "^1.11.0"
361 | browserify-zlib "~0.1.2"
362 | buffer "^4.1.0"
363 | cached-path-relative "^1.0.0"
364 | concat-stream "~1.5.1"
365 | console-browserify "^1.1.0"
366 | constants-browserify "~1.0.0"
367 | crypto-browserify "^3.0.0"
368 | defined "^1.0.0"
369 | deps-sort "^2.0.0"
370 | domain-browser "~1.1.0"
371 | duplexer2 "~0.1.2"
372 | events "~1.1.0"
373 | glob "^7.1.0"
374 | has "^1.0.0"
375 | htmlescape "^1.1.0"
376 | https-browserify "~0.0.0"
377 | inherits "~2.0.1"
378 | insert-module-globals "^7.0.0"
379 | JSONStream "^1.0.3"
380 | labeled-stream-splicer "^2.0.0"
381 | module-deps "^4.0.8"
382 | os-browserify "~0.1.1"
383 | parents "^1.0.1"
384 | path-browserify "~0.0.0"
385 | process "~0.11.0"
386 | punycode "^1.3.2"
387 | querystring-es3 "~0.2.0"
388 | read-only-stream "^2.0.0"
389 | readable-stream "^2.0.2"
390 | resolve "^1.1.4"
391 | shasum "^1.0.0"
392 | shell-quote "^1.6.1"
393 | stream-browserify "^2.0.0"
394 | stream-http "^2.0.0"
395 | string_decoder "~0.10.0"
396 | subarg "^1.0.0"
397 | syntax-error "^1.1.1"
398 | through2 "^2.0.0"
399 | timers-browserify "^1.0.1"
400 | tty-browserify "~0.0.0"
401 | url "~0.11.0"
402 | util "~0.10.1"
403 | vm-browserify "~0.0.1"
404 | xtend "^4.0.0"
405 |
406 | buffer-crc32@~0.2.3:
407 | version "0.2.13"
408 | resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
409 |
410 | buffer-shims@^1.0.0:
411 | version "1.0.0"
412 | resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51"
413 |
414 | buffer-to-vinyl@^1.0.0:
415 | version "1.1.0"
416 | resolved "https://registry.yarnpkg.com/buffer-to-vinyl/-/buffer-to-vinyl-1.1.0.tgz#00f15faee3ab7a1dda2cde6d9121bffdd07b2262"
417 | dependencies:
418 | file-type "^3.1.0"
419 | readable-stream "^2.0.2"
420 | uuid "^2.0.1"
421 | vinyl "^1.0.0"
422 |
423 | buffer-xor@^1.0.2:
424 | version "1.0.3"
425 | resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
426 |
427 | buffer@^4.1.0:
428 | version "4.9.1"
429 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298"
430 | dependencies:
431 | base64-js "^1.0.2"
432 | ieee754 "^1.1.4"
433 | isarray "^1.0.0"
434 |
435 | builtin-modules@^1.0.0:
436 | version "1.1.1"
437 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
438 |
439 | builtin-status-codes@^3.0.0:
440 | version "3.0.0"
441 | resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
442 |
443 | cached-path-relative@^1.0.0:
444 | version "1.0.0"
445 | resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.0.tgz#d1094c577fbd9a8b8bd43c96af6188aa205d05f4"
446 |
447 | camelcase-keys@^2.0.0:
448 | version "2.1.0"
449 | resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7"
450 | dependencies:
451 | camelcase "^2.0.0"
452 | map-obj "^1.0.0"
453 |
454 | camelcase@^2.0.0:
455 | version "2.1.1"
456 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"
457 |
458 | camelcase@^3.0.0:
459 | version "3.0.0"
460 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
461 |
462 | camelize@^1.0.0:
463 | version "1.0.0"
464 | resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b"
465 |
466 | capture-stack-trace@^1.0.0:
467 | version "1.0.0"
468 | resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d"
469 |
470 | caseless@~0.11.0:
471 | version "0.11.0"
472 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7"
473 |
474 | caw@^1.0.1:
475 | version "1.2.0"
476 | resolved "https://registry.yarnpkg.com/caw/-/caw-1.2.0.tgz#ffb226fe7efc547288dc62ee3e97073c212d1034"
477 | dependencies:
478 | get-proxy "^1.0.1"
479 | is-obj "^1.0.0"
480 | object-assign "^3.0.0"
481 | tunnel-agent "^0.4.0"
482 |
483 | chalk@^1.0.0, chalk@^1.1.1:
484 | version "1.1.3"
485 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
486 | dependencies:
487 | ansi-styles "^2.2.1"
488 | escape-string-regexp "^1.0.2"
489 | has-ansi "^2.0.0"
490 | strip-ansi "^3.0.0"
491 | supports-color "^2.0.0"
492 |
493 | chartjs-color-string@^0.4.0:
494 | version "0.4.0"
495 | resolved "https://registry.yarnpkg.com/chartjs-color-string/-/chartjs-color-string-0.4.0.tgz#57748d4530ae28d8db0a5492182ba06dfdf2f468"
496 | dependencies:
497 | color-name "^1.0.0"
498 |
499 | chartjs-color@^2.0.0:
500 | version "2.0.0"
501 | resolved "https://registry.yarnpkg.com/chartjs-color/-/chartjs-color-2.0.0.tgz#7f60c7256589b24914814ece757659117381e35b"
502 | dependencies:
503 | chartjs-color-string "^0.4.0"
504 | color-convert "^0.5.3"
505 |
506 | chokidar@^1.4.3, chokidar@~1.6.0:
507 | version "1.6.1"
508 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2"
509 | dependencies:
510 | anymatch "^1.3.0"
511 | async-each "^1.0.0"
512 | glob-parent "^2.0.0"
513 | inherits "^2.0.1"
514 | is-binary-path "^1.0.0"
515 | is-glob "^2.0.0"
516 | path-is-absolute "^1.0.0"
517 | readdirp "^2.0.0"
518 | optionalDependencies:
519 | fsevents "^1.0.0"
520 |
521 | cipher-base@^1.0.0, cipher-base@^1.0.1:
522 | version "1.0.3"
523 | resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.3.tgz#eeabf194419ce900da3018c207d212f2a6df0a07"
524 | dependencies:
525 | inherits "^2.0.1"
526 |
527 | cliui@^3.2.0:
528 | version "3.2.0"
529 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
530 | dependencies:
531 | string-width "^1.0.1"
532 | strip-ansi "^3.0.1"
533 | wrap-ansi "^2.0.0"
534 |
535 | clone-stats@^0.0.1:
536 | version "0.0.1"
537 | resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1"
538 |
539 | clone@^0.2.0:
540 | version "0.2.0"
541 | resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f"
542 |
543 | clone@^1.0.0:
544 | version "1.0.2"
545 | resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149"
546 |
547 | co@3.1.0:
548 | version "3.1.0"
549 | resolved "https://registry.yarnpkg.com/co/-/co-3.1.0.tgz#4ea54ea5a08938153185e15210c68d9092bc1b78"
550 |
551 | code-point-at@^1.0.0:
552 | version "1.1.0"
553 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
554 |
555 | color-convert@^0.5.3:
556 | version "0.5.3"
557 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-0.5.3.tgz#bdb6c69ce660fadffe0b0007cc447e1b9f7282bd"
558 |
559 | color-name@^1.0.0:
560 | version "1.1.1"
561 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689"
562 |
563 | colors@>=0.6.0:
564 | version "1.1.2"
565 | resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
566 |
567 | combine-source-map@~0.7.1:
568 | version "0.7.2"
569 | resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.7.2.tgz#0870312856b307a87cc4ac486f3a9a62aeccc09e"
570 | dependencies:
571 | convert-source-map "~1.1.0"
572 | inline-source-map "~0.6.0"
573 | lodash.memoize "~3.0.3"
574 | source-map "~0.5.3"
575 |
576 | combined-stream@^1.0.5, combined-stream@~1.0.5:
577 | version "1.0.5"
578 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
579 | dependencies:
580 | delayed-stream "~1.0.0"
581 |
582 | commander@^2.9.0:
583 | version "2.9.0"
584 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
585 | dependencies:
586 | graceful-readlink ">= 1.0.0"
587 |
588 | commander@~2.8.1:
589 | version "2.8.1"
590 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4"
591 | dependencies:
592 | graceful-readlink ">= 1.0.0"
593 |
594 | concat-map@0.0.1:
595 | version "0.0.1"
596 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
597 |
598 | concat-stream@^1.4.6, concat-stream@^1.4.7:
599 | version "1.6.0"
600 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7"
601 | dependencies:
602 | inherits "^2.0.3"
603 | readable-stream "^2.2.2"
604 | typedarray "^0.0.6"
605 |
606 | concat-stream@~1.5.0, concat-stream@~1.5.1:
607 | version "1.5.2"
608 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266"
609 | dependencies:
610 | inherits "~2.0.1"
611 | readable-stream "~2.0.0"
612 | typedarray "~0.0.5"
613 |
614 | console-browserify@^1.1.0:
615 | version "1.1.0"
616 | resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
617 | dependencies:
618 | date-now "^0.1.4"
619 |
620 | console-control-strings@^1.0.0, console-control-strings@~1.1.0:
621 | version "1.1.0"
622 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
623 |
624 | console-stream@^0.1.1:
625 | version "0.1.1"
626 | resolved "https://registry.yarnpkg.com/console-stream/-/console-stream-0.1.1.tgz#a095fe07b20465955f2fafd28b5d72bccd949d44"
627 |
628 | constants-browserify@~1.0.0:
629 | version "1.0.0"
630 | resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
631 |
632 | convert-source-map@^1.1.1:
633 | version "1.3.0"
634 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.3.0.tgz#e9f3e9c6e2728efc2676696a70eb382f73106a67"
635 |
636 | convert-source-map@~1.1.0:
637 | version "1.1.3"
638 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860"
639 |
640 | core-util-is@~1.0.0:
641 | version "1.0.2"
642 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
643 |
644 | create-ecdh@^4.0.0:
645 | version "4.0.0"
646 | resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d"
647 | dependencies:
648 | bn.js "^4.1.0"
649 | elliptic "^6.0.0"
650 |
651 | create-error-class@^3.0.1:
652 | version "3.0.2"
653 | resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6"
654 | dependencies:
655 | capture-stack-trace "^1.0.0"
656 |
657 | create-hash@^1.1.0, create-hash@^1.1.1:
658 | version "1.1.2"
659 | resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.2.tgz#51210062d7bb7479f6c65bb41a92208b1d61abad"
660 | dependencies:
661 | cipher-base "^1.0.1"
662 | inherits "^2.0.1"
663 | ripemd160 "^1.0.0"
664 | sha.js "^2.3.6"
665 |
666 | create-hmac@^1.1.0, create-hmac@^1.1.2:
667 | version "1.1.4"
668 | resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.4.tgz#d3fb4ba253eb8b3f56e39ea2fbcb8af747bd3170"
669 | dependencies:
670 | create-hash "^1.1.0"
671 | inherits "^2.0.1"
672 |
673 | cross-spawn@^3.0.0:
674 | version "3.0.1"
675 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982"
676 | dependencies:
677 | lru-cache "^4.0.1"
678 | which "^1.2.9"
679 |
680 | cross-spawn@~4.0.0:
681 | version "4.0.2"
682 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41"
683 | dependencies:
684 | lru-cache "^4.0.1"
685 | which "^1.2.9"
686 |
687 | cryptiles@2.x.x:
688 | version "2.0.5"
689 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
690 | dependencies:
691 | boom "2.x.x"
692 |
693 | crypto-browserify@^3.0.0:
694 | version "3.11.0"
695 | resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.11.0.tgz#3652a0906ab9b2a7e0c3ce66a408e957a2485522"
696 | dependencies:
697 | browserify-cipher "^1.0.0"
698 | browserify-sign "^4.0.0"
699 | create-ecdh "^4.0.0"
700 | create-hash "^1.1.0"
701 | create-hmac "^1.1.0"
702 | diffie-hellman "^5.0.0"
703 | inherits "^2.0.1"
704 | pbkdf2 "^3.0.3"
705 | public-encrypt "^4.0.0"
706 | randombytes "^2.0.0"
707 |
708 | currently-unhandled@^0.4.1:
709 | version "0.4.1"
710 | resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
711 | dependencies:
712 | array-find-index "^1.0.1"
713 |
714 | dashdash@^1.12.0:
715 | version "1.14.1"
716 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
717 | dependencies:
718 | assert-plus "^1.0.0"
719 |
720 | date-now@^0.1.4:
721 | version "0.1.4"
722 | resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
723 |
724 | dateformat@^2.0.0:
725 | version "2.0.0"
726 | resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.0.0.tgz#2743e3abb5c3fc2462e527dca445e04e9f4dee17"
727 |
728 | debug@~2.2.0:
729 | version "2.2.0"
730 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
731 | dependencies:
732 | ms "0.7.1"
733 |
734 | decamelize@^1.1.1, decamelize@^1.1.2:
735 | version "1.2.0"
736 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
737 |
738 | decompress-tar@^3.0.0:
739 | version "3.1.0"
740 | resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-3.1.0.tgz#217c789f9b94450efaadc5c5e537978fc333c466"
741 | dependencies:
742 | is-tar "^1.0.0"
743 | object-assign "^2.0.0"
744 | strip-dirs "^1.0.0"
745 | tar-stream "^1.1.1"
746 | through2 "^0.6.1"
747 | vinyl "^0.4.3"
748 |
749 | decompress-tarbz2@^3.0.0:
750 | version "3.1.0"
751 | resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-3.1.0.tgz#8b23935681355f9f189d87256a0f8bdd96d9666d"
752 | dependencies:
753 | is-bzip2 "^1.0.0"
754 | object-assign "^2.0.0"
755 | seek-bzip "^1.0.3"
756 | strip-dirs "^1.0.0"
757 | tar-stream "^1.1.1"
758 | through2 "^0.6.1"
759 | vinyl "^0.4.3"
760 |
761 | decompress-targz@^3.0.0:
762 | version "3.1.0"
763 | resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-3.1.0.tgz#b2c13df98166268991b715d6447f642e9696f5a0"
764 | dependencies:
765 | is-gzip "^1.0.0"
766 | object-assign "^2.0.0"
767 | strip-dirs "^1.0.0"
768 | tar-stream "^1.1.1"
769 | through2 "^0.6.1"
770 | vinyl "^0.4.3"
771 |
772 | decompress-unzip@^3.0.0:
773 | version "3.4.0"
774 | resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-3.4.0.tgz#61475b4152066bbe3fee12f9d629d15fe6478eeb"
775 | dependencies:
776 | is-zip "^1.0.0"
777 | read-all-stream "^3.0.0"
778 | stat-mode "^0.2.0"
779 | strip-dirs "^1.0.0"
780 | through2 "^2.0.0"
781 | vinyl "^1.0.0"
782 | yauzl "^2.2.1"
783 |
784 | decompress@^3.0.0:
785 | version "3.0.0"
786 | resolved "https://registry.yarnpkg.com/decompress/-/decompress-3.0.0.tgz#af1dd50d06e3bfc432461d37de11b38c0d991bed"
787 | dependencies:
788 | buffer-to-vinyl "^1.0.0"
789 | concat-stream "^1.4.6"
790 | decompress-tar "^3.0.0"
791 | decompress-tarbz2 "^3.0.0"
792 | decompress-targz "^3.0.0"
793 | decompress-unzip "^3.0.0"
794 | stream-combiner2 "^1.1.1"
795 | vinyl-assign "^1.0.1"
796 | vinyl-fs "^2.2.0"
797 |
798 | deep-extend@~0.4.0:
799 | version "0.4.1"
800 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253"
801 |
802 | defined@^1.0.0:
803 | version "1.0.0"
804 | resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
805 |
806 | delayed-stream@~1.0.0:
807 | version "1.0.0"
808 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
809 |
810 | delegates@^1.0.0:
811 | version "1.0.0"
812 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
813 |
814 | deps-sort@^2.0.0:
815 | version "2.0.0"
816 | resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.0.tgz#091724902e84658260eb910748cccd1af6e21fb5"
817 | dependencies:
818 | JSONStream "^1.0.3"
819 | shasum "^1.0.0"
820 | subarg "^1.0.0"
821 | through2 "^2.0.0"
822 |
823 | des.js@^1.0.0:
824 | version "1.0.0"
825 | resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc"
826 | dependencies:
827 | inherits "^2.0.1"
828 | minimalistic-assert "^1.0.0"
829 |
830 | detective@^4.0.0:
831 | version "4.3.2"
832 | resolved "https://registry.yarnpkg.com/detective/-/detective-4.3.2.tgz#77697e2e7947ac3fe7c8e26a6d6f115235afa91c"
833 | dependencies:
834 | acorn "^3.1.0"
835 | defined "^1.0.0"
836 |
837 | diffie-hellman@^5.0.0:
838 | version "5.0.2"
839 | resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e"
840 | dependencies:
841 | bn.js "^4.1.0"
842 | miller-rabin "^4.0.0"
843 | randombytes "^2.0.0"
844 |
845 | dom-walk@^0.1.0:
846 | version "0.1.1"
847 | resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018"
848 |
849 | domain-browser@~1.1.0:
850 | version "1.1.7"
851 | resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc"
852 |
853 | download@^4.0.0, download@^4.1.2:
854 | version "4.4.3"
855 | resolved "https://registry.yarnpkg.com/download/-/download-4.4.3.tgz#aa55fdad392d95d4b68e8c2be03e0c2aa21ba9ac"
856 | dependencies:
857 | caw "^1.0.1"
858 | concat-stream "^1.4.7"
859 | each-async "^1.0.0"
860 | filenamify "^1.0.1"
861 | got "^5.0.0"
862 | gulp-decompress "^1.2.0"
863 | gulp-rename "^1.2.0"
864 | is-url "^1.2.0"
865 | object-assign "^4.0.1"
866 | read-all-stream "^3.0.0"
867 | readable-stream "^2.0.2"
868 | stream-combiner2 "^1.1.1"
869 | vinyl "^1.0.0"
870 | vinyl-fs "^2.2.0"
871 | ware "^1.2.0"
872 |
873 | duplexer2@^0.1.2, duplexer2@^0.1.4, duplexer2@~0.1.0, duplexer2@~0.1.2:
874 | version "0.1.4"
875 | resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1"
876 | dependencies:
877 | readable-stream "^2.0.2"
878 |
879 | duplexer2@0.0.2:
880 | version "0.0.2"
881 | resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db"
882 | dependencies:
883 | readable-stream "~1.1.9"
884 |
885 | duplexify@^3.2.0:
886 | version "3.5.0"
887 | resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.0.tgz#1aa773002e1578457e9d9d4a50b0ccaaebcbd604"
888 | dependencies:
889 | end-of-stream "1.0.0"
890 | inherits "^2.0.1"
891 | readable-stream "^2.0.0"
892 | stream-shift "^1.0.0"
893 |
894 | each-async@^1.0.0, each-async@^1.1.1:
895 | version "1.1.1"
896 | resolved "https://registry.yarnpkg.com/each-async/-/each-async-1.1.1.tgz#dee5229bdf0ab6ba2012a395e1b869abf8813473"
897 | dependencies:
898 | onetime "^1.0.0"
899 | set-immediate-shim "^1.0.0"
900 |
901 | ecc-jsbn@~0.1.1:
902 | version "0.1.1"
903 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
904 | dependencies:
905 | jsbn "~0.1.0"
906 |
907 | elliptic@^6.0.0:
908 | version "6.3.2"
909 | resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.3.2.tgz#e4c81e0829cf0a65ab70e998b8232723b5c1bc48"
910 | dependencies:
911 | bn.js "^4.4.0"
912 | brorand "^1.0.1"
913 | hash.js "^1.0.0"
914 | inherits "^2.0.1"
915 |
916 | end-of-stream@^1.0.0:
917 | version "1.1.0"
918 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.1.0.tgz#e9353258baa9108965efc41cb0ef8ade2f3cfb07"
919 | dependencies:
920 | once "~1.3.0"
921 |
922 | end-of-stream@1.0.0:
923 | version "1.0.0"
924 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.0.0.tgz#d4596e702734a93e40e9af864319eabd99ff2f0e"
925 | dependencies:
926 | once "~1.3.0"
927 |
928 | error-ex@^1.2.0:
929 | version "1.3.0"
930 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.0.tgz#e67b43f3e82c96ea3a584ffee0b9fc3325d802d9"
931 | dependencies:
932 | is-arrayish "^0.2.1"
933 |
934 | error@^4.3.0:
935 | version "4.4.0"
936 | resolved "https://registry.yarnpkg.com/error/-/error-4.4.0.tgz#bf69ff251fb4a279c19adccdaa6b61e90d9bf12a"
937 | dependencies:
938 | camelize "^1.0.0"
939 | string-template "~0.2.0"
940 | xtend "~4.0.0"
941 |
942 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
943 | version "1.0.5"
944 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
945 |
946 | ev-store@^7.0.0:
947 | version "7.0.0"
948 | resolved "https://registry.yarnpkg.com/ev-store/-/ev-store-7.0.0.tgz#1ab0c7f82136505dd74b31d17701cb2be6d26558"
949 | dependencies:
950 | individual "^3.0.0"
951 |
952 | events@~1.1.0:
953 | version "1.1.1"
954 | resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
955 |
956 | evp_bytestokey@^1.0.0:
957 | version "1.0.0"
958 | resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz#497b66ad9fef65cd7c08a6180824ba1476b66e53"
959 | dependencies:
960 | create-hash "^1.1.1"
961 |
962 | exec-series@^1.0.0:
963 | version "1.0.3"
964 | resolved "https://registry.yarnpkg.com/exec-series/-/exec-series-1.0.3.tgz#6d257a9beac482a872c7783bc8615839fc77143a"
965 | dependencies:
966 | async-each-series "^1.1.0"
967 | object-assign "^4.1.0"
968 |
969 | executable@^1.0.0:
970 | version "1.1.0"
971 | resolved "https://registry.yarnpkg.com/executable/-/executable-1.1.0.tgz#877980e9112f3391066da37265de7ad8434ab4d9"
972 | dependencies:
973 | meow "^3.1.0"
974 |
975 | expand-brackets@^0.1.4:
976 | version "0.1.5"
977 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
978 | dependencies:
979 | is-posix-bracket "^0.1.0"
980 |
981 | expand-range@^1.8.1:
982 | version "1.8.2"
983 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
984 | dependencies:
985 | fill-range "^2.1.0"
986 |
987 | extend-shallow@^2.0.1:
988 | version "2.0.1"
989 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
990 | dependencies:
991 | is-extendable "^0.1.0"
992 |
993 | extend@^3.0.0, extend@~3.0.0:
994 | version "3.0.0"
995 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4"
996 |
997 | extglob@^0.3.1:
998 | version "0.3.2"
999 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
1000 | dependencies:
1001 | is-extglob "^1.0.0"
1002 |
1003 | extsprintf@1.0.2:
1004 | version "1.0.2"
1005 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550"
1006 |
1007 | fancy-log@^1.1.0:
1008 | version "1.3.0"
1009 | resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.0.tgz#45be17d02bb9917d60ccffd4995c999e6c8c9948"
1010 | dependencies:
1011 | chalk "^1.1.1"
1012 | time-stamp "^1.0.0"
1013 |
1014 | fd-slicer@~1.0.1:
1015 | version "1.0.1"
1016 | resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65"
1017 | dependencies:
1018 | pend "~1.2.0"
1019 |
1020 | figures@^1.3.5:
1021 | version "1.7.0"
1022 | resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
1023 | dependencies:
1024 | escape-string-regexp "^1.0.5"
1025 | object-assign "^4.1.0"
1026 |
1027 | file-type@^3.1.0:
1028 | version "3.9.0"
1029 | resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9"
1030 |
1031 | filename-regex@^2.0.0:
1032 | version "2.0.0"
1033 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775"
1034 |
1035 | filename-reserved-regex@^1.0.0:
1036 | version "1.0.0"
1037 | resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz#e61cf805f0de1c984567d0386dc5df50ee5af7e4"
1038 |
1039 | filenamify@^1.0.1:
1040 | version "1.2.1"
1041 | resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-1.2.1.tgz#a9f2ffd11c503bed300015029272378f1f1365a5"
1042 | dependencies:
1043 | filename-reserved-regex "^1.0.0"
1044 | strip-outer "^1.0.0"
1045 | trim-repeated "^1.0.0"
1046 |
1047 | fill-range@^2.1.0:
1048 | version "2.2.3"
1049 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723"
1050 | dependencies:
1051 | is-number "^2.1.0"
1052 | isobject "^2.0.0"
1053 | randomatic "^1.1.3"
1054 | repeat-element "^1.1.2"
1055 | repeat-string "^1.5.2"
1056 |
1057 | find-up@^1.0.0:
1058 | version "1.1.2"
1059 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
1060 | dependencies:
1061 | path-exists "^2.0.0"
1062 | pinkie-promise "^2.0.0"
1063 |
1064 | find-versions@^1.0.0:
1065 | version "1.2.1"
1066 | resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-1.2.1.tgz#cbde9f12e38575a0af1be1b9a2c5d5fd8f186b62"
1067 | dependencies:
1068 | array-uniq "^1.0.0"
1069 | get-stdin "^4.0.1"
1070 | meow "^3.5.0"
1071 | semver-regex "^1.0.0"
1072 |
1073 | first-chunk-stream@^1.0.0:
1074 | version "1.0.0"
1075 | resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e"
1076 |
1077 | for-in@^0.1.5:
1078 | version "0.1.6"
1079 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8"
1080 |
1081 | for-own@^0.1.4:
1082 | version "0.1.4"
1083 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.4.tgz#0149b41a39088c7515f51ebe1c1386d45f935072"
1084 | dependencies:
1085 | for-in "^0.1.5"
1086 |
1087 | forever-agent@~0.6.1:
1088 | version "0.6.1"
1089 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
1090 |
1091 | form-data@~2.1.1:
1092 | version "2.1.2"
1093 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4"
1094 | dependencies:
1095 | asynckit "^0.4.0"
1096 | combined-stream "^1.0.5"
1097 | mime-types "^2.1.12"
1098 |
1099 | fs.realpath@^1.0.0:
1100 | version "1.0.0"
1101 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
1102 |
1103 | fsevents@^1.0.0:
1104 | version "1.0.17"
1105 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.0.17.tgz#8537f3f12272678765b4fd6528c0f1f66f8f4558"
1106 | dependencies:
1107 | nan "^2.3.0"
1108 | node-pre-gyp "^0.6.29"
1109 |
1110 | fstream-ignore@~1.0.5:
1111 | version "1.0.5"
1112 | resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105"
1113 | dependencies:
1114 | fstream "^1.0.0"
1115 | inherits "2"
1116 | minimatch "^3.0.0"
1117 |
1118 | fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10:
1119 | version "1.0.10"
1120 | resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.10.tgz#604e8a92fe26ffd9f6fae30399d4984e1ab22822"
1121 | dependencies:
1122 | graceful-fs "^4.1.2"
1123 | inherits "~2.0.0"
1124 | mkdirp ">=0.5 0"
1125 | rimraf "2"
1126 |
1127 | function-bind@^1.0.2:
1128 | version "1.1.0"
1129 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771"
1130 |
1131 | gauge@~2.7.1:
1132 | version "2.7.2"
1133 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.2.tgz#15cecc31b02d05345a5d6b0e171cdb3ad2307774"
1134 | dependencies:
1135 | aproba "^1.0.3"
1136 | console-control-strings "^1.0.0"
1137 | has-unicode "^2.0.0"
1138 | object-assign "^4.1.0"
1139 | signal-exit "^3.0.0"
1140 | string-width "^1.0.1"
1141 | strip-ansi "^3.0.1"
1142 | supports-color "^0.2.0"
1143 | wide-align "^1.1.0"
1144 |
1145 | gaze@^1.0.0:
1146 | version "1.1.2"
1147 | resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.2.tgz#847224677adb8870d679257ed3388fdb61e40105"
1148 | dependencies:
1149 | globule "^1.0.0"
1150 |
1151 | generate-function@^2.0.0:
1152 | version "2.0.0"
1153 | resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74"
1154 |
1155 | generate-object-property@^1.1.0:
1156 | version "1.2.0"
1157 | resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0"
1158 | dependencies:
1159 | is-property "^1.0.0"
1160 |
1161 | get-caller-file@^1.0.1:
1162 | version "1.0.2"
1163 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
1164 |
1165 | get-proxy@^1.0.1:
1166 | version "1.1.0"
1167 | resolved "https://registry.yarnpkg.com/get-proxy/-/get-proxy-1.1.0.tgz#894854491bc591b0f147d7ae570f5c678b7256eb"
1168 | dependencies:
1169 | rc "^1.1.2"
1170 |
1171 | get-stdin@^4.0.1:
1172 | version "4.0.1"
1173 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
1174 |
1175 | getpass@^0.1.1:
1176 | version "0.1.6"
1177 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6"
1178 | dependencies:
1179 | assert-plus "^1.0.0"
1180 |
1181 | glob-base@^0.3.0:
1182 | version "0.3.0"
1183 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
1184 | dependencies:
1185 | glob-parent "^2.0.0"
1186 | is-glob "^2.0.0"
1187 |
1188 | glob-parent@^2.0.0:
1189 | version "2.0.0"
1190 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
1191 | dependencies:
1192 | is-glob "^2.0.0"
1193 |
1194 | glob-parent@^3.0.0:
1195 | version "3.1.0"
1196 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
1197 | dependencies:
1198 | is-glob "^3.1.0"
1199 | path-dirname "^1.0.0"
1200 |
1201 | glob-stream@^5.3.2:
1202 | version "5.3.5"
1203 | resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-5.3.5.tgz#a55665a9a8ccdc41915a87c701e32d4e016fad22"
1204 | dependencies:
1205 | extend "^3.0.0"
1206 | glob "^5.0.3"
1207 | glob-parent "^3.0.0"
1208 | micromatch "^2.3.7"
1209 | ordered-read-streams "^0.3.0"
1210 | through2 "^0.6.0"
1211 | to-absolute-glob "^0.1.1"
1212 | unique-stream "^2.0.2"
1213 |
1214 | glob@^5.0.3:
1215 | version "5.0.15"
1216 | resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1"
1217 | dependencies:
1218 | inflight "^1.0.4"
1219 | inherits "2"
1220 | minimatch "2 || 3"
1221 | once "^1.3.0"
1222 | path-is-absolute "^1.0.0"
1223 |
1224 | glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.0, glob@^7.1.1, glob@~7.1.1:
1225 | version "7.1.1"
1226 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
1227 | dependencies:
1228 | fs.realpath "^1.0.0"
1229 | inflight "^1.0.4"
1230 | inherits "2"
1231 | minimatch "^3.0.2"
1232 | once "^1.3.0"
1233 | path-is-absolute "^1.0.0"
1234 |
1235 | global@^4.3.0:
1236 | version "4.3.1"
1237 | resolved "https://registry.yarnpkg.com/global/-/global-4.3.1.tgz#5f757908c7cbabce54f386ae440e11e26b7916df"
1238 | dependencies:
1239 | min-document "^2.19.0"
1240 | process "~0.5.1"
1241 |
1242 | globule@^1.0.0:
1243 | version "1.1.0"
1244 | resolved "https://registry.yarnpkg.com/globule/-/globule-1.1.0.tgz#c49352e4dc183d85893ee825385eb994bb6df45f"
1245 | dependencies:
1246 | glob "~7.1.1"
1247 | lodash "~4.16.4"
1248 | minimatch "~3.0.2"
1249 |
1250 | glogg@^1.0.0:
1251 | version "1.0.0"
1252 | resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.0.tgz#7fe0f199f57ac906cf512feead8f90ee4a284fc5"
1253 | dependencies:
1254 | sparkles "^1.0.0"
1255 |
1256 | got@^5.0.0:
1257 | version "5.7.1"
1258 | resolved "https://registry.yarnpkg.com/got/-/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35"
1259 | dependencies:
1260 | create-error-class "^3.0.1"
1261 | duplexer2 "^0.1.4"
1262 | is-redirect "^1.0.0"
1263 | is-retry-allowed "^1.0.0"
1264 | is-stream "^1.0.0"
1265 | lowercase-keys "^1.0.0"
1266 | node-status-codes "^1.0.0"
1267 | object-assign "^4.0.1"
1268 | parse-json "^2.1.0"
1269 | pinkie-promise "^2.0.0"
1270 | read-all-stream "^3.0.0"
1271 | readable-stream "^2.0.5"
1272 | timed-out "^3.0.0"
1273 | unzip-response "^1.0.2"
1274 | url-parse-lax "^1.0.0"
1275 |
1276 | graceful-fs@^4.0.0, graceful-fs@^4.1.2:
1277 | version "4.1.11"
1278 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
1279 |
1280 | "graceful-readlink@>= 1.0.0":
1281 | version "1.0.1"
1282 | resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
1283 |
1284 | gulp-decompress@^1.2.0:
1285 | version "1.2.0"
1286 | resolved "https://registry.yarnpkg.com/gulp-decompress/-/gulp-decompress-1.2.0.tgz#8eeb65a5e015f8ed8532cafe28454960626f0dc7"
1287 | dependencies:
1288 | archive-type "^3.0.0"
1289 | decompress "^3.0.0"
1290 | gulp-util "^3.0.1"
1291 | readable-stream "^2.0.2"
1292 |
1293 | gulp-rename@^1.2.0:
1294 | version "1.2.2"
1295 | resolved "https://registry.yarnpkg.com/gulp-rename/-/gulp-rename-1.2.2.tgz#3ad4428763f05e2764dec1c67d868db275687817"
1296 |
1297 | gulp-sourcemaps@1.6.0:
1298 | version "1.6.0"
1299 | resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz#b86ff349d801ceb56e1d9e7dc7bbcb4b7dee600c"
1300 | dependencies:
1301 | convert-source-map "^1.1.1"
1302 | graceful-fs "^4.1.2"
1303 | strip-bom "^2.0.0"
1304 | through2 "^2.0.0"
1305 | vinyl "^1.0.0"
1306 |
1307 | gulp-util@^3.0.1:
1308 | version "3.0.8"
1309 | resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f"
1310 | dependencies:
1311 | array-differ "^1.0.0"
1312 | array-uniq "^1.0.2"
1313 | beeper "^1.0.0"
1314 | chalk "^1.0.0"
1315 | dateformat "^2.0.0"
1316 | fancy-log "^1.1.0"
1317 | gulplog "^1.0.0"
1318 | has-gulplog "^0.1.0"
1319 | lodash._reescape "^3.0.0"
1320 | lodash._reevaluate "^3.0.0"
1321 | lodash._reinterpolate "^3.0.0"
1322 | lodash.template "^3.0.0"
1323 | minimist "^1.1.0"
1324 | multipipe "^0.1.2"
1325 | object-assign "^3.0.0"
1326 | replace-ext "0.0.1"
1327 | through2 "^2.0.0"
1328 | vinyl "^0.5.0"
1329 |
1330 | gulplog@^1.0.0:
1331 | version "1.0.0"
1332 | resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5"
1333 | dependencies:
1334 | glogg "^1.0.0"
1335 |
1336 | har-validator@~2.0.6:
1337 | version "2.0.6"
1338 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d"
1339 | dependencies:
1340 | chalk "^1.1.1"
1341 | commander "^2.9.0"
1342 | is-my-json-valid "^2.12.4"
1343 | pinkie-promise "^2.0.0"
1344 |
1345 | has-ansi@^2.0.0:
1346 | version "2.0.0"
1347 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
1348 | dependencies:
1349 | ansi-regex "^2.0.0"
1350 |
1351 | has-gulplog@^0.1.0:
1352 | version "0.1.0"
1353 | resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce"
1354 | dependencies:
1355 | sparkles "^1.0.0"
1356 |
1357 | has-unicode@^2.0.0:
1358 | version "2.0.1"
1359 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
1360 |
1361 | has@^1.0.0:
1362 | version "1.0.1"
1363 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
1364 | dependencies:
1365 | function-bind "^1.0.2"
1366 |
1367 | hash.js@^1.0.0:
1368 | version "1.0.3"
1369 | resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.0.3.tgz#1332ff00156c0a0ffdd8236013d07b77a0451573"
1370 | dependencies:
1371 | inherits "^2.0.1"
1372 |
1373 | hawk@~3.1.3:
1374 | version "3.1.3"
1375 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
1376 | dependencies:
1377 | boom "2.x.x"
1378 | cryptiles "2.x.x"
1379 | hoek "2.x.x"
1380 | sntp "1.x.x"
1381 |
1382 | hoek@2.x.x:
1383 | version "2.16.3"
1384 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
1385 |
1386 | hosted-git-info@^2.1.4:
1387 | version "2.1.5"
1388 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.1.5.tgz#0ba81d90da2e25ab34a332e6ec77936e1598118b"
1389 |
1390 | htmlescape@^1.1.0:
1391 | version "1.1.1"
1392 | resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351"
1393 |
1394 | http-signature@~1.1.0:
1395 | version "1.1.1"
1396 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
1397 | dependencies:
1398 | assert-plus "^0.2.0"
1399 | jsprim "^1.2.2"
1400 | sshpk "^1.7.0"
1401 |
1402 | https-browserify@~0.0.0:
1403 | version "0.0.1"
1404 | resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82"
1405 |
1406 | ieee754@^1.1.4:
1407 | version "1.1.8"
1408 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4"
1409 |
1410 | in-publish@^2.0.0:
1411 | version "2.0.0"
1412 | resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51"
1413 |
1414 | indent-string@^2.1.0:
1415 | version "2.1.0"
1416 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80"
1417 | dependencies:
1418 | repeating "^2.0.0"
1419 |
1420 | indexof@0.0.1:
1421 | version "0.0.1"
1422 | resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
1423 |
1424 | individual@^3.0.0:
1425 | version "3.0.0"
1426 | resolved "https://registry.yarnpkg.com/individual/-/individual-3.0.0.tgz#e7ca4f85f8957b018734f285750dc22ec2f9862d"
1427 |
1428 | inflight@^1.0.4:
1429 | version "1.0.6"
1430 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
1431 | dependencies:
1432 | once "^1.3.0"
1433 | wrappy "1"
1434 |
1435 | inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@2:
1436 | version "2.0.3"
1437 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
1438 |
1439 | inherits@2.0.1:
1440 | version "2.0.1"
1441 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
1442 |
1443 | ini@~1.3.0:
1444 | version "1.3.4"
1445 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e"
1446 |
1447 | inline-source-map@~0.6.0:
1448 | version "0.6.2"
1449 | resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5"
1450 | dependencies:
1451 | source-map "~0.5.3"
1452 |
1453 | insert-module-globals@^7.0.0:
1454 | version "7.0.1"
1455 | resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.0.1.tgz#c03bf4e01cb086d5b5e5ace8ad0afe7889d638c3"
1456 | dependencies:
1457 | combine-source-map "~0.7.1"
1458 | concat-stream "~1.5.1"
1459 | is-buffer "^1.1.0"
1460 | JSONStream "^1.0.3"
1461 | lexical-scope "^1.2.0"
1462 | process "~0.11.0"
1463 | through2 "^2.0.0"
1464 | xtend "^4.0.0"
1465 |
1466 | invert-kv@^1.0.0:
1467 | version "1.0.0"
1468 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
1469 |
1470 | ip-regex@^1.0.1:
1471 | version "1.0.3"
1472 | resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-1.0.3.tgz#dc589076f659f419c222039a33316f1c7387effd"
1473 |
1474 | is-absolute@^0.1.5:
1475 | version "0.1.7"
1476 | resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.1.7.tgz#847491119fccb5fb436217cc737f7faad50f603f"
1477 | dependencies:
1478 | is-relative "^0.1.0"
1479 |
1480 | is-arrayish@^0.2.1:
1481 | version "0.2.1"
1482 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
1483 |
1484 | is-binary-path@^1.0.0:
1485 | version "1.0.1"
1486 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
1487 | dependencies:
1488 | binary-extensions "^1.0.0"
1489 |
1490 | is-buffer@^1.0.2, is-buffer@^1.1.0:
1491 | version "1.1.4"
1492 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b"
1493 |
1494 | is-builtin-module@^1.0.0:
1495 | version "1.0.0"
1496 | resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
1497 | dependencies:
1498 | builtin-modules "^1.0.0"
1499 |
1500 | is-bzip2@^1.0.0:
1501 | version "1.0.0"
1502 | resolved "https://registry.yarnpkg.com/is-bzip2/-/is-bzip2-1.0.0.tgz#5ee58eaa5a2e9c80e21407bedf23ae5ac091b3fc"
1503 |
1504 | is-dotfile@^1.0.0:
1505 | version "1.0.2"
1506 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d"
1507 |
1508 | is-equal-shallow@^0.1.3:
1509 | version "0.1.3"
1510 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
1511 | dependencies:
1512 | is-primitive "^2.0.0"
1513 |
1514 | is-extendable@^0.1.0, is-extendable@^0.1.1:
1515 | version "0.1.1"
1516 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
1517 |
1518 | is-extglob@^1.0.0:
1519 | version "1.0.0"
1520 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
1521 |
1522 | is-extglob@^2.1.0:
1523 | version "2.1.1"
1524 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
1525 |
1526 | is-finite@^1.0.0:
1527 | version "1.0.2"
1528 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
1529 | dependencies:
1530 | number-is-nan "^1.0.0"
1531 |
1532 | is-fullwidth-code-point@^1.0.0:
1533 | version "1.0.0"
1534 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
1535 | dependencies:
1536 | number-is-nan "^1.0.0"
1537 |
1538 | is-glob@^2.0.0, is-glob@^2.0.1:
1539 | version "2.0.1"
1540 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
1541 | dependencies:
1542 | is-extglob "^1.0.0"
1543 |
1544 | is-glob@^3.1.0:
1545 | version "3.1.0"
1546 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
1547 | dependencies:
1548 | is-extglob "^2.1.0"
1549 |
1550 | is-gzip@^1.0.0:
1551 | version "1.0.0"
1552 | resolved "https://registry.yarnpkg.com/is-gzip/-/is-gzip-1.0.0.tgz#6ca8b07b99c77998025900e555ced8ed80879a83"
1553 |
1554 | is-my-json-valid@^2.12.4:
1555 | version "2.15.0"
1556 | resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz#936edda3ca3c211fd98f3b2d3e08da43f7b2915b"
1557 | dependencies:
1558 | generate-function "^2.0.0"
1559 | generate-object-property "^1.1.0"
1560 | jsonpointer "^4.0.0"
1561 | xtend "^4.0.0"
1562 |
1563 | is-natural-number@^2.0.0:
1564 | version "2.1.1"
1565 | resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-2.1.1.tgz#7d4c5728377ef386c3e194a9911bf57c6dc335e7"
1566 |
1567 | is-number@^2.0.2, is-number@^2.1.0:
1568 | version "2.1.0"
1569 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
1570 | dependencies:
1571 | kind-of "^3.0.2"
1572 |
1573 | is-obj@^1.0.0:
1574 | version "1.0.1"
1575 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
1576 |
1577 | is-object@^1.0.1:
1578 | version "1.0.1"
1579 | resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470"
1580 |
1581 | is-posix-bracket@^0.1.0:
1582 | version "0.1.1"
1583 | resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
1584 |
1585 | is-primitive@^2.0.0:
1586 | version "2.0.0"
1587 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
1588 |
1589 | is-property@^1.0.0:
1590 | version "1.0.2"
1591 | resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
1592 |
1593 | is-redirect@^1.0.0:
1594 | version "1.0.0"
1595 | resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24"
1596 |
1597 | is-relative@^0.1.0:
1598 | version "0.1.3"
1599 | resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.1.3.tgz#905fee8ae86f45b3ec614bc3c15c869df0876e82"
1600 |
1601 | is-retry-allowed@^1.0.0:
1602 | version "1.1.0"
1603 | resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34"
1604 |
1605 | is-stream@^1.0.0, is-stream@^1.0.1:
1606 | version "1.1.0"
1607 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
1608 |
1609 | is-tar@^1.0.0:
1610 | version "1.0.0"
1611 | resolved "https://registry.yarnpkg.com/is-tar/-/is-tar-1.0.0.tgz#2f6b2e1792c1f5bb36519acaa9d65c0d26fe853d"
1612 |
1613 | is-typedarray@~1.0.0:
1614 | version "1.0.0"
1615 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
1616 |
1617 | is-url@^1.2.0:
1618 | version "1.2.2"
1619 | resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.2.tgz#498905a593bf47cc2d9e7f738372bbf7696c7f26"
1620 |
1621 | is-utf8@^0.2.0:
1622 | version "0.2.1"
1623 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
1624 |
1625 | is-valid-glob@^0.3.0:
1626 | version "0.3.0"
1627 | resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-0.3.0.tgz#d4b55c69f51886f9b65c70d6c2622d37e29f48fe"
1628 |
1629 | is-zip@^1.0.0:
1630 | version "1.0.0"
1631 | resolved "https://registry.yarnpkg.com/is-zip/-/is-zip-1.0.0.tgz#47b0a8ff4d38a76431ccfd99a8e15a4c86ba2325"
1632 |
1633 | isarray@^1.0.0, isarray@~1.0.0, isarray@1.0.0:
1634 | version "1.0.0"
1635 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
1636 |
1637 | isarray@~0.0.1, isarray@0.0.1:
1638 | version "0.0.1"
1639 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
1640 |
1641 | isexe@^1.1.1:
1642 | version "1.1.2"
1643 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0"
1644 |
1645 | isobject@^2.0.0:
1646 | version "2.1.0"
1647 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
1648 | dependencies:
1649 | isarray "1.0.0"
1650 |
1651 | isstream@~0.1.2:
1652 | version "0.1.2"
1653 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
1654 |
1655 | jodid25519@^1.0.0:
1656 | version "1.0.2"
1657 | resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967"
1658 | dependencies:
1659 | jsbn "~0.1.0"
1660 |
1661 | jsbn@~0.1.0:
1662 | version "0.1.0"
1663 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd"
1664 |
1665 | json-schema@0.2.3:
1666 | version "0.2.3"
1667 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
1668 |
1669 | json-stable-stringify@^1.0.0:
1670 | version "1.0.1"
1671 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
1672 | dependencies:
1673 | jsonify "~0.0.0"
1674 |
1675 | json-stable-stringify@~0.0.0:
1676 | version "0.0.1"
1677 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz#611c23e814db375527df851193db59dd2af27f45"
1678 | dependencies:
1679 | jsonify "~0.0.0"
1680 |
1681 | json-stringify-safe@~5.0.1:
1682 | version "5.0.1"
1683 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
1684 |
1685 | jsonify@~0.0.0:
1686 | version "0.0.0"
1687 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
1688 |
1689 | jsonparse@^1.2.0:
1690 | version "1.2.0"
1691 | resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.2.0.tgz#5c0c5685107160e72fe7489bddea0b44c2bc67bd"
1692 |
1693 | jsonparse@0.0.5:
1694 | version "0.0.5"
1695 | resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-0.0.5.tgz#330542ad3f0a654665b778f3eb2d9a9fa507ac64"
1696 |
1697 | jsonpointer@^4.0.0:
1698 | version "4.0.1"
1699 | resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
1700 |
1701 | JSONStream@^0.10.0:
1702 | version "0.10.0"
1703 | resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-0.10.0.tgz#74349d0d89522b71f30f0a03ff9bd20ca6f12ac0"
1704 | dependencies:
1705 | jsonparse "0.0.5"
1706 | through ">=2.2.7 <3"
1707 |
1708 | JSONStream@^1.0.3:
1709 | version "1.3.0"
1710 | resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.0.tgz#680ab9ac6572a8a1a207e0b38721db1c77b215e5"
1711 | dependencies:
1712 | jsonparse "^1.2.0"
1713 | through ">=2.2.7 <3"
1714 |
1715 | jsprim@^1.2.2:
1716 | version "1.3.1"
1717 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.3.1.tgz#2a7256f70412a29ee3670aaca625994c4dcff252"
1718 | dependencies:
1719 | extsprintf "1.0.2"
1720 | json-schema "0.2.3"
1721 | verror "1.3.6"
1722 |
1723 | kind-of@^3.0.2:
1724 | version "3.1.0"
1725 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47"
1726 | dependencies:
1727 | is-buffer "^1.0.2"
1728 |
1729 | labeled-stream-splicer@^2.0.0:
1730 | version "2.0.0"
1731 | resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz#a52e1d138024c00b86b1c0c91f677918b8ae0a59"
1732 | dependencies:
1733 | inherits "^2.0.1"
1734 | isarray "~0.0.1"
1735 | stream-splicer "^2.0.0"
1736 |
1737 | lazy-req@^1.0.0:
1738 | version "1.1.0"
1739 | resolved "https://registry.yarnpkg.com/lazy-req/-/lazy-req-1.1.0.tgz#bdaebead30f8d824039ce0ce149d4daa07ba1fac"
1740 |
1741 | lazystream@^1.0.0:
1742 | version "1.0.0"
1743 | resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4"
1744 | dependencies:
1745 | readable-stream "^2.0.5"
1746 |
1747 | lcid@^1.0.0:
1748 | version "1.0.0"
1749 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
1750 | dependencies:
1751 | invert-kv "^1.0.0"
1752 |
1753 | lexical-scope@^1.2.0:
1754 | version "1.2.0"
1755 | resolved "https://registry.yarnpkg.com/lexical-scope/-/lexical-scope-1.2.0.tgz#fcea5edc704a4b3a8796cdca419c3a0afaf22df4"
1756 | dependencies:
1757 | astw "^2.0.0"
1758 |
1759 | load-json-file@^1.0.0:
1760 | version "1.1.0"
1761 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
1762 | dependencies:
1763 | graceful-fs "^4.1.2"
1764 | parse-json "^2.2.0"
1765 | pify "^2.0.0"
1766 | pinkie-promise "^2.0.0"
1767 | strip-bom "^2.0.0"
1768 |
1769 | lodash._basecopy@^3.0.0:
1770 | version "3.0.1"
1771 | resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"
1772 |
1773 | lodash._basetostring@^3.0.0:
1774 | version "3.0.1"
1775 | resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5"
1776 |
1777 | lodash._basevalues@^3.0.0:
1778 | version "3.0.0"
1779 | resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7"
1780 |
1781 | lodash._getnative@^3.0.0:
1782 | version "3.9.1"
1783 | resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
1784 |
1785 | lodash._isiterateecall@^3.0.0:
1786 | version "3.0.9"
1787 | resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c"
1788 |
1789 | lodash._reescape@^3.0.0:
1790 | version "3.0.0"
1791 | resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a"
1792 |
1793 | lodash._reevaluate@^3.0.0:
1794 | version "3.0.0"
1795 | resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed"
1796 |
1797 | lodash._reinterpolate@^3.0.0:
1798 | version "3.0.0"
1799 | resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
1800 |
1801 | lodash._root@^3.0.0:
1802 | version "3.0.1"
1803 | resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692"
1804 |
1805 | lodash.assign@^4.0.3, lodash.assign@^4.0.6, lodash.assign@^4.2.0:
1806 | version "4.2.0"
1807 | resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7"
1808 |
1809 | lodash.clonedeep@^4.3.2:
1810 | version "4.5.0"
1811 | resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
1812 |
1813 | lodash.escape@^3.0.0:
1814 | version "3.2.0"
1815 | resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698"
1816 | dependencies:
1817 | lodash._root "^3.0.0"
1818 |
1819 | lodash.isarguments@^3.0.0:
1820 | version "3.1.0"
1821 | resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
1822 |
1823 | lodash.isarray@^3.0.0:
1824 | version "3.0.4"
1825 | resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
1826 |
1827 | lodash.isequal@^4.0.0:
1828 | version "4.5.0"
1829 | resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
1830 |
1831 | lodash.keys@^3.0.0:
1832 | version "3.1.2"
1833 | resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
1834 | dependencies:
1835 | lodash._getnative "^3.0.0"
1836 | lodash.isarguments "^3.0.0"
1837 | lodash.isarray "^3.0.0"
1838 |
1839 | lodash.memoize@~3.0.3:
1840 | version "3.0.4"
1841 | resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f"
1842 |
1843 | lodash.mergewith@^4.6.0:
1844 | version "4.6.0"
1845 | resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz#150cf0a16791f5903b8891eab154609274bdea55"
1846 |
1847 | lodash.restparam@^3.0.0:
1848 | version "3.6.1"
1849 | resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805"
1850 |
1851 | lodash.template@^3.0.0:
1852 | version "3.6.2"
1853 | resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f"
1854 | dependencies:
1855 | lodash._basecopy "^3.0.0"
1856 | lodash._basetostring "^3.0.0"
1857 | lodash._basevalues "^3.0.0"
1858 | lodash._isiterateecall "^3.0.0"
1859 | lodash._reinterpolate "^3.0.0"
1860 | lodash.escape "^3.0.0"
1861 | lodash.keys "^3.0.0"
1862 | lodash.restparam "^3.0.0"
1863 | lodash.templatesettings "^3.0.0"
1864 |
1865 | lodash.templatesettings@^3.0.0:
1866 | version "3.1.1"
1867 | resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5"
1868 | dependencies:
1869 | lodash._reinterpolate "^3.0.0"
1870 | lodash.escape "^3.0.0"
1871 |
1872 | lodash@^4.0.0, lodash@^4.14.0:
1873 | version "4.17.4"
1874 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
1875 |
1876 | lodash@~4.16.4:
1877 | version "4.16.6"
1878 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.16.6.tgz#d22c9ac660288f3843e16ba7d2b5d06cca27d777"
1879 |
1880 | logalot@^2.1.0:
1881 | version "2.1.0"
1882 | resolved "https://registry.yarnpkg.com/logalot/-/logalot-2.1.0.tgz#5f8e8c90d304edf12530951a5554abb8c5e3f552"
1883 | dependencies:
1884 | figures "^1.3.5"
1885 | squeak "^1.0.0"
1886 |
1887 | longest@^1.0.0:
1888 | version "1.0.1"
1889 | resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
1890 |
1891 | loud-rejection@^1.0.0:
1892 | version "1.6.0"
1893 | resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f"
1894 | dependencies:
1895 | currently-unhandled "^0.4.1"
1896 | signal-exit "^3.0.0"
1897 |
1898 | lowercase-keys@^1.0.0:
1899 | version "1.0.0"
1900 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306"
1901 |
1902 | lpad-align@^1.0.1:
1903 | version "1.1.0"
1904 | resolved "https://registry.yarnpkg.com/lpad-align/-/lpad-align-1.1.0.tgz#27fa786bcb695fc434ea1500723eb8d0bdc82bf4"
1905 | dependencies:
1906 | get-stdin "^4.0.1"
1907 | longest "^1.0.0"
1908 | lpad "^2.0.1"
1909 | meow "^3.3.0"
1910 |
1911 | lpad@^2.0.1:
1912 | version "2.0.1"
1913 | resolved "https://registry.yarnpkg.com/lpad/-/lpad-2.0.1.tgz#28316b4e7b2015f511f6591459afc0e5944008ad"
1914 |
1915 | lru-cache@^4.0.1:
1916 | version "4.0.2"
1917 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e"
1918 | dependencies:
1919 | pseudomap "^1.0.1"
1920 | yallist "^2.0.0"
1921 |
1922 | map-obj@^1.0.0, map-obj@^1.0.1:
1923 | version "1.0.1"
1924 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
1925 |
1926 | meow@^3.1.0, meow@^3.3.0, meow@^3.5.0, meow@^3.7.0:
1927 | version "3.7.0"
1928 | resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb"
1929 | dependencies:
1930 | camelcase-keys "^2.0.0"
1931 | decamelize "^1.1.2"
1932 | loud-rejection "^1.0.0"
1933 | map-obj "^1.0.1"
1934 | minimist "^1.1.3"
1935 | normalize-package-data "^2.3.4"
1936 | object-assign "^4.0.1"
1937 | read-pkg-up "^1.0.1"
1938 | redent "^1.0.0"
1939 | trim-newlines "^1.0.0"
1940 |
1941 | merge-stream@^1.0.0:
1942 | version "1.0.1"
1943 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1"
1944 | dependencies:
1945 | readable-stream "^2.0.1"
1946 |
1947 | micromatch@^2.1.5, micromatch@^2.3.7:
1948 | version "2.3.11"
1949 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
1950 | dependencies:
1951 | arr-diff "^2.0.0"
1952 | array-unique "^0.2.1"
1953 | braces "^1.8.2"
1954 | expand-brackets "^0.1.4"
1955 | extglob "^0.3.1"
1956 | filename-regex "^2.0.0"
1957 | is-extglob "^1.0.0"
1958 | is-glob "^2.0.1"
1959 | kind-of "^3.0.2"
1960 | normalize-path "^2.0.1"
1961 | object.omit "^2.0.0"
1962 | parse-glob "^3.0.4"
1963 | regex-cache "^0.4.2"
1964 |
1965 | miller-rabin@^4.0.0:
1966 | version "4.0.0"
1967 | resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.0.tgz#4a62fb1d42933c05583982f4c716f6fb9e6c6d3d"
1968 | dependencies:
1969 | bn.js "^4.0.0"
1970 | brorand "^1.0.1"
1971 |
1972 | mime-db@~1.25.0:
1973 | version "1.25.0"
1974 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.25.0.tgz#c18dbd7c73a5dbf6f44a024dc0d165a1e7b1c392"
1975 |
1976 | mime-types@^2.1.12, mime-types@~2.1.7:
1977 | version "2.1.13"
1978 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.13.tgz#e07aaa9c6c6b9a7ca3012c69003ad25a39e92a88"
1979 | dependencies:
1980 | mime-db "~1.25.0"
1981 |
1982 | mime@>=1.2.9:
1983 | version "1.3.4"
1984 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53"
1985 |
1986 | min-document@^2.19.0:
1987 | version "2.19.0"
1988 | resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
1989 | dependencies:
1990 | dom-walk "^0.1.0"
1991 |
1992 | minimalistic-assert@^1.0.0:
1993 | version "1.0.0"
1994 | resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3"
1995 |
1996 | minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@~3.0.2, "minimatch@2 || 3":
1997 | version "3.0.3"
1998 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774"
1999 | dependencies:
2000 | brace-expansion "^1.0.0"
2001 |
2002 | minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0, minimist@~1.2.0:
2003 | version "1.2.0"
2004 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
2005 |
2006 | minimist@~0.0.1:
2007 | version "0.0.10"
2008 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
2009 |
2010 | minimist@0.0.8:
2011 | version "0.0.8"
2012 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
2013 |
2014 | mkdirp@^0.5.0, mkdirp@^0.5.1, "mkdirp@>=0.5 0", mkdirp@~0.5.1:
2015 | version "0.5.1"
2016 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
2017 | dependencies:
2018 | minimist "0.0.8"
2019 |
2020 | module-deps@^4.0.8:
2021 | version "4.0.8"
2022 | resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-4.0.8.tgz#55fd70623399706c3288bef7a609ff1e8c0ed2bb"
2023 | dependencies:
2024 | browser-resolve "^1.7.0"
2025 | cached-path-relative "^1.0.0"
2026 | concat-stream "~1.5.0"
2027 | defined "^1.0.0"
2028 | detective "^4.0.0"
2029 | duplexer2 "^0.1.2"
2030 | inherits "^2.0.1"
2031 | JSONStream "^1.0.3"
2032 | parents "^1.0.0"
2033 | readable-stream "^2.0.2"
2034 | resolve "^1.1.3"
2035 | stream-combiner2 "^1.1.1"
2036 | subarg "^1.0.0"
2037 | through2 "^2.0.0"
2038 | xtend "^4.0.0"
2039 |
2040 | moment@^2.10.6:
2041 | version "2.17.1"
2042 | resolved "https://registry.yarnpkg.com/moment/-/moment-2.17.1.tgz#fed9506063f36b10f066c8b59a144d7faebe1d82"
2043 |
2044 | ms@0.7.1:
2045 | version "0.7.1"
2046 | resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098"
2047 |
2048 | multipipe@^0.1.2:
2049 | version "0.1.2"
2050 | resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b"
2051 | dependencies:
2052 | duplexer2 "0.0.2"
2053 |
2054 | mute-stream@~0.0.4:
2055 | version "0.0.7"
2056 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
2057 |
2058 | nan@^2.3.0, nan@^2.3.2:
2059 | version "2.5.0"
2060 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.5.0.tgz#aa8f1e34531d807e9e27755b234b4a6ec0c152a8"
2061 |
2062 | next-tick@^0.2.2:
2063 | version "0.2.2"
2064 | resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-0.2.2.tgz#75da4a927ee5887e39065880065b7336413b310d"
2065 |
2066 | node-gyp@^3.3.1:
2067 | version "3.5.0"
2068 | resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.5.0.tgz#a8fe5e611d079ec16348a3eb960e78e11c85274a"
2069 | dependencies:
2070 | fstream "^1.0.0"
2071 | glob "^7.0.3"
2072 | graceful-fs "^4.1.2"
2073 | minimatch "^3.0.2"
2074 | mkdirp "^0.5.0"
2075 | nopt "2 || 3"
2076 | npmlog "0 || 1 || 2 || 3 || 4"
2077 | osenv "0"
2078 | request "2"
2079 | rimraf "2"
2080 | semver "2.x || 3.x || 4 || 5"
2081 | tar "^2.0.0"
2082 | which "1"
2083 |
2084 | node-pre-gyp@^0.6.29:
2085 | version "0.6.32"
2086 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.32.tgz#fc452b376e7319b3d255f5f34853ef6fd8fe1fd5"
2087 | dependencies:
2088 | mkdirp "~0.5.1"
2089 | nopt "~3.0.6"
2090 | npmlog "^4.0.1"
2091 | rc "~1.1.6"
2092 | request "^2.79.0"
2093 | rimraf "~2.5.4"
2094 | semver "~5.3.0"
2095 | tar "~2.2.1"
2096 | tar-pack "~3.3.0"
2097 |
2098 | node-sass@4.3.0:
2099 | version "4.3.0"
2100 | resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.3.0.tgz#d014f64595d77b26af99e9f7a7e74704d9976bda"
2101 | dependencies:
2102 | async-foreach "^0.1.3"
2103 | chalk "^1.1.1"
2104 | cross-spawn "^3.0.0"
2105 | gaze "^1.0.0"
2106 | get-stdin "^4.0.1"
2107 | glob "^7.0.3"
2108 | in-publish "^2.0.0"
2109 | lodash.assign "^4.2.0"
2110 | lodash.clonedeep "^4.3.2"
2111 | lodash.mergewith "^4.6.0"
2112 | meow "^3.7.0"
2113 | mkdirp "^0.5.1"
2114 | nan "^2.3.2"
2115 | node-gyp "^3.3.1"
2116 | npmlog "^4.0.0"
2117 | request "^2.61.0"
2118 | sass-graph "^2.1.1"
2119 | stdout-stream "^1.4.0"
2120 |
2121 | node-static@^0.7.9:
2122 | version "0.7.9"
2123 | resolved "https://registry.yarnpkg.com/node-static/-/node-static-0.7.9.tgz#9bb69fce2281f7ae3cd1fb983e9ea0ec0cd9fecb"
2124 | dependencies:
2125 | colors ">=0.6.0"
2126 | mime ">=1.2.9"
2127 | optimist ">=0.3.4"
2128 |
2129 | node-status-codes@^1.0.0:
2130 | version "1.0.0"
2131 | resolved "https://registry.yarnpkg.com/node-status-codes/-/node-status-codes-1.0.0.tgz#5ae5541d024645d32a58fcddc9ceecea7ae3ac2f"
2132 |
2133 | nopt@~3.0.6, "nopt@2 || 3":
2134 | version "3.0.6"
2135 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
2136 | dependencies:
2137 | abbrev "1"
2138 |
2139 | normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
2140 | version "2.3.5"
2141 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.5.tgz#8d924f142960e1777e7ffe170543631cc7cb02df"
2142 | dependencies:
2143 | hosted-git-info "^2.1.4"
2144 | is-builtin-module "^1.0.0"
2145 | semver "2 || 3 || 4 || 5"
2146 | validate-npm-package-license "^3.0.1"
2147 |
2148 | normalize-path@^2.0.1:
2149 | version "2.0.1"
2150 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a"
2151 |
2152 | npmlog@^4.0.0, npmlog@^4.0.1, "npmlog@0 || 1 || 2 || 3 || 4":
2153 | version "4.0.2"
2154 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.2.tgz#d03950e0e78ce1527ba26d2a7592e9348ac3e75f"
2155 | dependencies:
2156 | are-we-there-yet "~1.1.2"
2157 | console-control-strings "~1.1.0"
2158 | gauge "~2.7.1"
2159 | set-blocking "~2.0.0"
2160 |
2161 | number-is-nan@^1.0.0:
2162 | version "1.0.1"
2163 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
2164 |
2165 | oauth-sign@~0.8.1:
2166 | version "0.8.2"
2167 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
2168 |
2169 | object-assign@^2.0.0:
2170 | version "2.1.1"
2171 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa"
2172 |
2173 | object-assign@^3.0.0:
2174 | version "3.0.0"
2175 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2"
2176 |
2177 | object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1.0:
2178 | version "4.1.0"
2179 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0"
2180 |
2181 | object.omit@^2.0.0:
2182 | version "2.0.1"
2183 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
2184 | dependencies:
2185 | for-own "^0.1.4"
2186 | is-extendable "^0.1.1"
2187 |
2188 | once@^1.3.0:
2189 | version "1.4.0"
2190 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
2191 | dependencies:
2192 | wrappy "1"
2193 |
2194 | once@~1.3.0, once@~1.3.3:
2195 | version "1.3.3"
2196 | resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20"
2197 | dependencies:
2198 | wrappy "1"
2199 |
2200 | onchange@^3.2.1:
2201 | version "3.2.1"
2202 | resolved "https://registry.yarnpkg.com/onchange/-/onchange-3.2.1.tgz#7669312c8a8f94d80b4595dc8abe5d119559f7e0"
2203 | dependencies:
2204 | arrify "~1.0.1"
2205 | chokidar "~1.6.0"
2206 | cross-spawn "~4.0.0"
2207 | minimist "~1.2.0"
2208 | tree-kill "~1.1.0"
2209 |
2210 | onetime@^1.0.0:
2211 | version "1.1.0"
2212 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789"
2213 |
2214 | optimist@>=0.3.4:
2215 | version "0.6.1"
2216 | resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
2217 | dependencies:
2218 | minimist "~0.0.1"
2219 | wordwrap "~0.0.2"
2220 |
2221 | ordered-read-streams@^0.3.0:
2222 | version "0.3.0"
2223 | resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz#7137e69b3298bb342247a1bbee3881c80e2fd78b"
2224 | dependencies:
2225 | is-stream "^1.0.1"
2226 | readable-stream "^2.0.1"
2227 |
2228 | os-browserify@~0.1.1:
2229 | version "0.1.2"
2230 | resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.1.2.tgz#49ca0293e0b19590a5f5de10c7f265a617d8fe54"
2231 |
2232 | os-filter-obj@^1.0.0:
2233 | version "1.0.3"
2234 | resolved "https://registry.yarnpkg.com/os-filter-obj/-/os-filter-obj-1.0.3.tgz#5915330d90eced557d2d938a31c6dd214d9c63ad"
2235 |
2236 | os-homedir@^1.0.0:
2237 | version "1.0.2"
2238 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
2239 |
2240 | os-locale@^1.4.0:
2241 | version "1.4.0"
2242 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9"
2243 | dependencies:
2244 | lcid "^1.0.0"
2245 |
2246 | os-tmpdir@^1.0.0:
2247 | version "1.0.2"
2248 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
2249 |
2250 | osenv@0:
2251 | version "0.1.4"
2252 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644"
2253 | dependencies:
2254 | os-homedir "^1.0.0"
2255 | os-tmpdir "^1.0.0"
2256 |
2257 | pako@~0.2.0:
2258 | version "0.2.9"
2259 | resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75"
2260 |
2261 | parents@^1.0.0, parents@^1.0.1:
2262 | version "1.0.1"
2263 | resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751"
2264 | dependencies:
2265 | path-platform "~0.11.15"
2266 |
2267 | parse-asn1@^5.0.0:
2268 | version "5.0.0"
2269 | resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.0.0.tgz#35060f6d5015d37628c770f4e091a0b5a278bc23"
2270 | dependencies:
2271 | asn1.js "^4.0.0"
2272 | browserify-aes "^1.0.0"
2273 | create-hash "^1.1.0"
2274 | evp_bytestokey "^1.0.0"
2275 | pbkdf2 "^3.0.3"
2276 |
2277 | parse-glob@^3.0.4:
2278 | version "3.0.4"
2279 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
2280 | dependencies:
2281 | glob-base "^0.3.0"
2282 | is-dotfile "^1.0.0"
2283 | is-extglob "^1.0.0"
2284 | is-glob "^2.0.0"
2285 |
2286 | parse-json@^2.1.0, parse-json@^2.2.0:
2287 | version "2.2.0"
2288 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
2289 | dependencies:
2290 | error-ex "^1.2.0"
2291 |
2292 | path-browserify@~0.0.0:
2293 | version "0.0.0"
2294 | resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a"
2295 |
2296 | path-dirname@^1.0.0:
2297 | version "1.0.2"
2298 | resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
2299 |
2300 | path-exists@^2.0.0:
2301 | version "2.1.0"
2302 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
2303 | dependencies:
2304 | pinkie-promise "^2.0.0"
2305 |
2306 | path-is-absolute@^1.0.0:
2307 | version "1.0.1"
2308 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
2309 |
2310 | path-platform@~0.11.15:
2311 | version "0.11.15"
2312 | resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2"
2313 |
2314 | path-type@^1.0.0:
2315 | version "1.1.0"
2316 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
2317 | dependencies:
2318 | graceful-fs "^4.1.2"
2319 | pify "^2.0.0"
2320 | pinkie-promise "^2.0.0"
2321 |
2322 | pbkdf2@^3.0.3:
2323 | version "3.0.9"
2324 | resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.9.tgz#f2c4b25a600058b3c3773c086c37dbbee1ffe693"
2325 | dependencies:
2326 | create-hmac "^1.1.2"
2327 |
2328 | pend@~1.2.0:
2329 | version "1.2.0"
2330 | resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
2331 |
2332 | pify@^2.0.0:
2333 | version "2.3.0"
2334 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
2335 |
2336 | pinkie-promise@^2.0.0:
2337 | version "2.0.1"
2338 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
2339 | dependencies:
2340 | pinkie "^2.0.0"
2341 |
2342 | pinkie@^2.0.0:
2343 | version "2.0.4"
2344 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
2345 |
2346 | prepend-http@^1.0.1:
2347 | version "1.0.4"
2348 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
2349 |
2350 | preserve@^0.2.0:
2351 | version "0.2.0"
2352 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
2353 |
2354 | process-nextick-args@~1.0.6:
2355 | version "1.0.7"
2356 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
2357 |
2358 | process@~0.11.0:
2359 | version "0.11.9"
2360 | resolved "https://registry.yarnpkg.com/process/-/process-0.11.9.tgz#7bd5ad21aa6253e7da8682264f1e11d11c0318c1"
2361 |
2362 | process@~0.5.1:
2363 | version "0.5.2"
2364 | resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf"
2365 |
2366 | pseudomap@^1.0.1:
2367 | version "1.0.2"
2368 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
2369 |
2370 | public-encrypt@^4.0.0:
2371 | version "4.0.0"
2372 | resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6"
2373 | dependencies:
2374 | bn.js "^4.1.0"
2375 | browserify-rsa "^4.0.0"
2376 | create-hash "^1.1.0"
2377 | parse-asn1 "^5.0.0"
2378 | randombytes "^2.0.1"
2379 |
2380 | pulp@^10.0.0:
2381 | version "10.0.0"
2382 | resolved "https://registry.yarnpkg.com/pulp/-/pulp-10.0.0.tgz#934e4b8098d05f5215bbe8a5a7a76cd870f7d40b"
2383 | dependencies:
2384 | browserify "^13.1.0"
2385 | browserify-incremental "^3.0.1"
2386 | concat-stream "^1.4.6"
2387 | glob "^7.1.1"
2388 | minimatch "^3.0.3"
2389 | node-static "^0.7.9"
2390 | read "^1.0.7"
2391 | string-stream "0.0.7"
2392 | temp "^0.8.1"
2393 | through "^2.3.8"
2394 | tree-kill "^1.0.0"
2395 | watchpack "^1.0.1"
2396 | which "^1.2.1"
2397 | wordwrap "1.0.0"
2398 |
2399 | punycode@^1.3.2, punycode@^1.4.1:
2400 | version "1.4.1"
2401 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
2402 |
2403 | punycode@1.3.2:
2404 | version "1.3.2"
2405 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
2406 |
2407 | purescript@^0.10.2:
2408 | version "0.10.5"
2409 | resolved "https://registry.yarnpkg.com/purescript/-/purescript-0.10.5.tgz#ddb01e27d3152721e50f2b2541fec415837e09b3"
2410 | dependencies:
2411 | async-each-series "^1.0.0"
2412 | bin-build "^2.2.0"
2413 | bin-wrapper "^3.0.2"
2414 | logalot "^2.1.0"
2415 | to-executable-name "^1.0.0"
2416 |
2417 | qs@~6.3.0:
2418 | version "6.3.0"
2419 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442"
2420 |
2421 | querystring-es3@~0.2.0:
2422 | version "0.2.1"
2423 | resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
2424 |
2425 | querystring@0.2.0:
2426 | version "0.2.0"
2427 | resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
2428 |
2429 | randomatic@^1.1.3:
2430 | version "1.1.6"
2431 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb"
2432 | dependencies:
2433 | is-number "^2.0.2"
2434 | kind-of "^3.0.2"
2435 |
2436 | randombytes@^2.0.0, randombytes@^2.0.1:
2437 | version "2.0.3"
2438 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.3.tgz#674c99760901c3c4112771a31e521dc349cc09ec"
2439 |
2440 | rc@^1.1.2, rc@~1.1.6:
2441 | version "1.1.6"
2442 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.6.tgz#43651b76b6ae53b5c802f1151fa3fc3b059969c9"
2443 | dependencies:
2444 | deep-extend "~0.4.0"
2445 | ini "~1.3.0"
2446 | minimist "^1.2.0"
2447 | strip-json-comments "~1.0.4"
2448 |
2449 | read-all-stream@^3.0.0:
2450 | version "3.1.0"
2451 | resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa"
2452 | dependencies:
2453 | pinkie-promise "^2.0.0"
2454 | readable-stream "^2.0.0"
2455 |
2456 | read-only-stream@^2.0.0:
2457 | version "2.0.0"
2458 | resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0"
2459 | dependencies:
2460 | readable-stream "^2.0.2"
2461 |
2462 | read-pkg-up@^1.0.1:
2463 | version "1.0.1"
2464 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
2465 | dependencies:
2466 | find-up "^1.0.0"
2467 | read-pkg "^1.0.0"
2468 |
2469 | read-pkg@^1.0.0:
2470 | version "1.1.0"
2471 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
2472 | dependencies:
2473 | load-json-file "^1.0.0"
2474 | normalize-package-data "^2.3.2"
2475 | path-type "^1.0.0"
2476 |
2477 | read@^1.0.7:
2478 | version "1.0.7"
2479 | resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4"
2480 | dependencies:
2481 | mute-stream "~0.0.4"
2482 |
2483 | readable-stream@^2.0.0, "readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.1.0, readable-stream@^2.1.5, readable-stream@^2.2.2:
2484 | version "2.2.2"
2485 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.2.tgz#a9e6fec3c7dda85f8bb1b3ba7028604556fc825e"
2486 | dependencies:
2487 | buffer-shims "^1.0.0"
2488 | core-util-is "~1.0.0"
2489 | inherits "~2.0.1"
2490 | isarray "~1.0.0"
2491 | process-nextick-args "~1.0.6"
2492 | string_decoder "~0.10.x"
2493 | util-deprecate "~1.0.1"
2494 |
2495 | "readable-stream@>=1.0.33-1 <1.1.0-0":
2496 | version "1.0.34"
2497 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
2498 | dependencies:
2499 | core-util-is "~1.0.0"
2500 | inherits "~2.0.1"
2501 | isarray "0.0.1"
2502 | string_decoder "~0.10.x"
2503 |
2504 | readable-stream@~1.1.9:
2505 | version "1.1.14"
2506 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9"
2507 | dependencies:
2508 | core-util-is "~1.0.0"
2509 | inherits "~2.0.1"
2510 | isarray "0.0.1"
2511 | string_decoder "~0.10.x"
2512 |
2513 | readable-stream@~2.0.0:
2514 | version "2.0.6"
2515 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e"
2516 | dependencies:
2517 | core-util-is "~1.0.0"
2518 | inherits "~2.0.1"
2519 | isarray "~1.0.0"
2520 | process-nextick-args "~1.0.6"
2521 | string_decoder "~0.10.x"
2522 | util-deprecate "~1.0.1"
2523 |
2524 | readable-stream@~2.1.4:
2525 | version "2.1.5"
2526 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0"
2527 | dependencies:
2528 | buffer-shims "^1.0.0"
2529 | core-util-is "~1.0.0"
2530 | inherits "~2.0.1"
2531 | isarray "~1.0.0"
2532 | process-nextick-args "~1.0.6"
2533 | string_decoder "~0.10.x"
2534 | util-deprecate "~1.0.1"
2535 |
2536 | readdirp@^2.0.0:
2537 | version "2.1.0"
2538 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78"
2539 | dependencies:
2540 | graceful-fs "^4.1.2"
2541 | minimatch "^3.0.2"
2542 | readable-stream "^2.0.2"
2543 | set-immediate-shim "^1.0.1"
2544 |
2545 | redent@^1.0.0:
2546 | version "1.0.0"
2547 | resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde"
2548 | dependencies:
2549 | indent-string "^2.1.0"
2550 | strip-indent "^1.0.1"
2551 |
2552 | regex-cache@^0.4.2:
2553 | version "0.4.3"
2554 | resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145"
2555 | dependencies:
2556 | is-equal-shallow "^0.1.3"
2557 | is-primitive "^2.0.0"
2558 |
2559 | repeat-element@^1.1.2:
2560 | version "1.1.2"
2561 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a"
2562 |
2563 | repeat-string@^1.5.2:
2564 | version "1.6.1"
2565 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
2566 |
2567 | repeating@^2.0.0:
2568 | version "2.0.1"
2569 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
2570 | dependencies:
2571 | is-finite "^1.0.0"
2572 |
2573 | replace-ext@0.0.1:
2574 | version "0.0.1"
2575 | resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924"
2576 |
2577 | request@^2.61.0, request@^2.79.0, request@2:
2578 | version "2.79.0"
2579 | resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de"
2580 | dependencies:
2581 | aws-sign2 "~0.6.0"
2582 | aws4 "^1.2.1"
2583 | caseless "~0.11.0"
2584 | combined-stream "~1.0.5"
2585 | extend "~3.0.0"
2586 | forever-agent "~0.6.1"
2587 | form-data "~2.1.1"
2588 | har-validator "~2.0.6"
2589 | hawk "~3.1.3"
2590 | http-signature "~1.1.0"
2591 | is-typedarray "~1.0.0"
2592 | isstream "~0.1.2"
2593 | json-stringify-safe "~5.0.1"
2594 | mime-types "~2.1.7"
2595 | oauth-sign "~0.8.1"
2596 | qs "~6.3.0"
2597 | stringstream "~0.0.4"
2598 | tough-cookie "~2.3.0"
2599 | tunnel-agent "~0.4.1"
2600 | uuid "^3.0.0"
2601 |
2602 | require-directory@^2.1.1:
2603 | version "2.1.1"
2604 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
2605 |
2606 | require-main-filename@^1.0.1:
2607 | version "1.0.1"
2608 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
2609 |
2610 | resolve@^1.1.3, resolve@^1.1.4:
2611 | version "1.2.0"
2612 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.2.0.tgz#9589c3f2f6149d1417a40becc1663db6ec6bc26c"
2613 |
2614 | resolve@1.1.7:
2615 | version "1.1.7"
2616 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
2617 |
2618 | rimraf@^2.2.6, rimraf@~2.5.1, rimraf@~2.5.4, rimraf@2:
2619 | version "2.5.4"
2620 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04"
2621 | dependencies:
2622 | glob "^7.0.5"
2623 |
2624 | rimraf@~2.2.6:
2625 | version "2.2.8"
2626 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582"
2627 |
2628 | ripemd160@^1.0.0:
2629 | version "1.0.1"
2630 | resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-1.0.1.tgz#93a4bbd4942bc574b69a8fa57c71de10ecca7d6e"
2631 |
2632 | sass-graph@^2.1.1:
2633 | version "2.1.2"
2634 | resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.1.2.tgz#965104be23e8103cb7e5f710df65935b317da57b"
2635 | dependencies:
2636 | glob "^7.0.0"
2637 | lodash "^4.0.0"
2638 | yargs "^4.7.1"
2639 |
2640 | seek-bzip@^1.0.3:
2641 | version "1.0.5"
2642 | resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc"
2643 | dependencies:
2644 | commander "~2.8.1"
2645 |
2646 | semver-regex@^1.0.0:
2647 | version "1.0.0"
2648 | resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-1.0.0.tgz#92a4969065f9c70c694753d55248fc68f8f652c9"
2649 |
2650 | semver-truncate@^1.0.0:
2651 | version "1.1.2"
2652 | resolved "https://registry.yarnpkg.com/semver-truncate/-/semver-truncate-1.1.2.tgz#57f41de69707a62709a7e0104ba2117109ea47e8"
2653 | dependencies:
2654 | semver "^5.3.0"
2655 |
2656 | semver@^4.0.3:
2657 | version "4.3.6"
2658 | resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da"
2659 |
2660 | semver@^5.3.0, semver@~5.3.0, "semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5":
2661 | version "5.3.0"
2662 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
2663 |
2664 | set-blocking@^2.0.0, set-blocking@~2.0.0:
2665 | version "2.0.0"
2666 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
2667 |
2668 | set-immediate-shim@^1.0.0, set-immediate-shim@^1.0.1:
2669 | version "1.0.1"
2670 | resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61"
2671 |
2672 | sha.js@^2.3.6, sha.js@~2.4.4:
2673 | version "2.4.8"
2674 | resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.8.tgz#37068c2c476b6baf402d14a49c67f597921f634f"
2675 | dependencies:
2676 | inherits "^2.0.1"
2677 |
2678 | shasum@^1.0.0:
2679 | version "1.0.2"
2680 | resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f"
2681 | dependencies:
2682 | json-stable-stringify "~0.0.0"
2683 | sha.js "~2.4.4"
2684 |
2685 | shell-quote@^1.6.1:
2686 | version "1.6.1"
2687 | resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767"
2688 | dependencies:
2689 | array-filter "~0.0.0"
2690 | array-map "~0.0.0"
2691 | array-reduce "~0.0.0"
2692 | jsonify "~0.0.0"
2693 |
2694 | signal-exit@^3.0.0:
2695 | version "3.0.2"
2696 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
2697 |
2698 | sntp@1.x.x:
2699 | version "1.0.9"
2700 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
2701 | dependencies:
2702 | hoek "2.x.x"
2703 |
2704 | source-map@~0.5.3:
2705 | version "0.5.6"
2706 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
2707 |
2708 | sparkles@^1.0.0:
2709 | version "1.0.0"
2710 | resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3"
2711 |
2712 | spdx-correct@~1.0.0:
2713 | version "1.0.2"
2714 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
2715 | dependencies:
2716 | spdx-license-ids "^1.0.2"
2717 |
2718 | spdx-expression-parse@~1.0.0:
2719 | version "1.0.4"
2720 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c"
2721 |
2722 | spdx-license-ids@^1.0.2:
2723 | version "1.2.2"
2724 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57"
2725 |
2726 | squeak@^1.0.0:
2727 | version "1.3.0"
2728 | resolved "https://registry.yarnpkg.com/squeak/-/squeak-1.3.0.tgz#33045037b64388b567674b84322a6521073916c3"
2729 | dependencies:
2730 | chalk "^1.0.0"
2731 | console-stream "^0.1.1"
2732 | lpad-align "^1.0.1"
2733 |
2734 | sshpk@^1.7.0:
2735 | version "1.10.1"
2736 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.10.1.tgz#30e1a5d329244974a1af61511339d595af6638b0"
2737 | dependencies:
2738 | asn1 "~0.2.3"
2739 | assert-plus "^1.0.0"
2740 | dashdash "^1.12.0"
2741 | getpass "^0.1.1"
2742 | optionalDependencies:
2743 | bcrypt-pbkdf "^1.0.0"
2744 | ecc-jsbn "~0.1.1"
2745 | jodid25519 "^1.0.0"
2746 | jsbn "~0.1.0"
2747 | tweetnacl "~0.14.0"
2748 |
2749 | stat-mode@^0.2.0:
2750 | version "0.2.2"
2751 | resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.2.2.tgz#e6c80b623123d7d80cf132ce538f346289072502"
2752 |
2753 | stdout-stream@^1.4.0:
2754 | version "1.4.0"
2755 | resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.0.tgz#a2c7c8587e54d9427ea9edb3ac3f2cd522df378b"
2756 | dependencies:
2757 | readable-stream "^2.0.1"
2758 |
2759 | stream-browserify@^2.0.0:
2760 | version "2.0.1"
2761 | resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db"
2762 | dependencies:
2763 | inherits "~2.0.1"
2764 | readable-stream "^2.0.2"
2765 |
2766 | stream-combiner2@^1.1.1:
2767 | version "1.1.1"
2768 | resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe"
2769 | dependencies:
2770 | duplexer2 "~0.1.0"
2771 | readable-stream "^2.0.2"
2772 |
2773 | stream-http@^2.0.0:
2774 | version "2.6.0"
2775 | resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.6.0.tgz#adf3309ced17624ebfb7ef13e6ac4cfe405a8b12"
2776 | dependencies:
2777 | builtin-status-codes "^3.0.0"
2778 | inherits "^2.0.1"
2779 | readable-stream "^2.1.0"
2780 | to-arraybuffer "^1.0.0"
2781 | xtend "^4.0.0"
2782 |
2783 | stream-shift@^1.0.0:
2784 | version "1.0.0"
2785 | resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952"
2786 |
2787 | stream-splicer@^2.0.0:
2788 | version "2.0.0"
2789 | resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.0.tgz#1b63be438a133e4b671cc1935197600175910d83"
2790 | dependencies:
2791 | inherits "^2.0.1"
2792 | readable-stream "^2.0.2"
2793 |
2794 | string_decoder@~0.10.0, string_decoder@~0.10.x:
2795 | version "0.10.31"
2796 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
2797 |
2798 | string-stream@0.0.7:
2799 | version "0.0.7"
2800 | resolved "https://registry.yarnpkg.com/string-stream/-/string-stream-0.0.7.tgz#cfcde82799fa62f303429aaa79336ee8834332fe"
2801 |
2802 | string-template@~0.2.0:
2803 | version "0.2.1"
2804 | resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add"
2805 |
2806 | string-width@^1.0.1:
2807 | version "1.0.2"
2808 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
2809 | dependencies:
2810 | code-point-at "^1.0.0"
2811 | is-fullwidth-code-point "^1.0.0"
2812 | strip-ansi "^3.0.0"
2813 |
2814 | stringstream@~0.0.4:
2815 | version "0.0.5"
2816 | resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
2817 |
2818 | strip-ansi@^3.0.0, strip-ansi@^3.0.1:
2819 | version "3.0.1"
2820 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
2821 | dependencies:
2822 | ansi-regex "^2.0.0"
2823 |
2824 | strip-bom-stream@^1.0.0:
2825 | version "1.0.0"
2826 | resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz#e7144398577d51a6bed0fa1994fa05f43fd988ee"
2827 | dependencies:
2828 | first-chunk-stream "^1.0.0"
2829 | strip-bom "^2.0.0"
2830 |
2831 | strip-bom@^2.0.0:
2832 | version "2.0.0"
2833 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
2834 | dependencies:
2835 | is-utf8 "^0.2.0"
2836 |
2837 | strip-dirs@^1.0.0:
2838 | version "1.1.1"
2839 | resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-1.1.1.tgz#960bbd1287844f3975a4558aa103a8255e2456a0"
2840 | dependencies:
2841 | chalk "^1.0.0"
2842 | get-stdin "^4.0.1"
2843 | is-absolute "^0.1.5"
2844 | is-natural-number "^2.0.0"
2845 | minimist "^1.1.0"
2846 | sum-up "^1.0.1"
2847 |
2848 | strip-indent@^1.0.1:
2849 | version "1.0.1"
2850 | resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2"
2851 | dependencies:
2852 | get-stdin "^4.0.1"
2853 |
2854 | strip-json-comments@~1.0.4:
2855 | version "1.0.4"
2856 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91"
2857 |
2858 | strip-outer@^1.0.0:
2859 | version "1.0.0"
2860 | resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.0.tgz#aac0ba60d2e90c5d4f275fd8869fd9a2d310ffb8"
2861 | dependencies:
2862 | escape-string-regexp "^1.0.2"
2863 |
2864 | subarg@^1.0.0:
2865 | version "1.0.0"
2866 | resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2"
2867 | dependencies:
2868 | minimist "^1.1.0"
2869 |
2870 | sum-up@^1.0.1:
2871 | version "1.0.3"
2872 | resolved "https://registry.yarnpkg.com/sum-up/-/sum-up-1.0.3.tgz#1c661f667057f63bcb7875aa1438bc162525156e"
2873 | dependencies:
2874 | chalk "^1.0.0"
2875 |
2876 | supports-color@^0.2.0:
2877 | version "0.2.0"
2878 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a"
2879 |
2880 | supports-color@^2.0.0:
2881 | version "2.0.0"
2882 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
2883 |
2884 | syntax-error@^1.1.1:
2885 | version "1.1.6"
2886 | resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.1.6.tgz#b4549706d386cc1c1dc7c2423f18579b6cade710"
2887 | dependencies:
2888 | acorn "^2.7.0"
2889 |
2890 | tar-pack@~3.3.0:
2891 | version "3.3.0"
2892 | resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.3.0.tgz#30931816418f55afc4d21775afdd6720cee45dae"
2893 | dependencies:
2894 | debug "~2.2.0"
2895 | fstream "~1.0.10"
2896 | fstream-ignore "~1.0.5"
2897 | once "~1.3.3"
2898 | readable-stream "~2.1.4"
2899 | rimraf "~2.5.1"
2900 | tar "~2.2.1"
2901 | uid-number "~0.0.6"
2902 |
2903 | tar-stream@^1.1.1:
2904 | version "1.5.2"
2905 | resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.2.tgz#fbc6c6e83c1a19d4cb48c7d96171fc248effc7bf"
2906 | dependencies:
2907 | bl "^1.0.0"
2908 | end-of-stream "^1.0.0"
2909 | readable-stream "^2.0.0"
2910 | xtend "^4.0.0"
2911 |
2912 | tar@^2.0.0, tar@~2.2.1:
2913 | version "2.2.1"
2914 | resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
2915 | dependencies:
2916 | block-stream "*"
2917 | fstream "^1.0.2"
2918 | inherits "2"
2919 |
2920 | temp@^0.8.1:
2921 | version "0.8.3"
2922 | resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59"
2923 | dependencies:
2924 | os-tmpdir "^1.0.0"
2925 | rimraf "~2.2.6"
2926 |
2927 | tempfile@^1.0.0:
2928 | version "1.1.1"
2929 | resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-1.1.1.tgz#5bcc4eaecc4ab2c707d8bc11d99ccc9a2cb287f2"
2930 | dependencies:
2931 | os-tmpdir "^1.0.0"
2932 | uuid "^2.0.1"
2933 |
2934 | through@^2.3.8, "through@>=2.2.7 <3":
2935 | version "2.3.8"
2936 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
2937 |
2938 | through2-filter@^2.0.0:
2939 | version "2.0.0"
2940 | resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-2.0.0.tgz#60bc55a0dacb76085db1f9dae99ab43f83d622ec"
2941 | dependencies:
2942 | through2 "~2.0.0"
2943 | xtend "~4.0.0"
2944 |
2945 | through2@^0.6.0, through2@^0.6.1:
2946 | version "0.6.5"
2947 | resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48"
2948 | dependencies:
2949 | readable-stream ">=1.0.33-1 <1.1.0-0"
2950 | xtend ">=4.0.0 <4.1.0-0"
2951 |
2952 | through2@^2.0.0, through2@~2.0.0:
2953 | version "2.0.3"
2954 | resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
2955 | dependencies:
2956 | readable-stream "^2.1.5"
2957 | xtend "~4.0.1"
2958 |
2959 | time-stamp@^1.0.0:
2960 | version "1.0.1"
2961 | resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.0.1.tgz#9f4bd23559c9365966f3302dbba2b07c6b99b151"
2962 |
2963 | timed-out@^3.0.0:
2964 | version "3.1.3"
2965 | resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217"
2966 |
2967 | timers-browserify@^1.0.1:
2968 | version "1.4.2"
2969 | resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d"
2970 | dependencies:
2971 | process "~0.11.0"
2972 |
2973 | to-absolute-glob@^0.1.1:
2974 | version "0.1.1"
2975 | resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz#1cdfa472a9ef50c239ee66999b662ca0eb39937f"
2976 | dependencies:
2977 | extend-shallow "^2.0.1"
2978 |
2979 | to-arraybuffer@^1.0.0:
2980 | version "1.0.1"
2981 | resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
2982 |
2983 | to-executable-name@^1.0.0:
2984 | version "1.1.0"
2985 | resolved "https://registry.yarnpkg.com/to-executable-name/-/to-executable-name-1.1.0.tgz#3efbf9a370e5d7fb7820530df76f085959b27778"
2986 |
2987 | tough-cookie@~2.3.0:
2988 | version "2.3.2"
2989 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a"
2990 | dependencies:
2991 | punycode "^1.4.1"
2992 |
2993 | tree-kill@^1.0.0, tree-kill@~1.1.0:
2994 | version "1.1.0"
2995 | resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.1.0.tgz#c963dcf03722892ec59cba569e940b71954d1729"
2996 |
2997 | trim-newlines@^1.0.0:
2998 | version "1.0.0"
2999 | resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
3000 |
3001 | trim-repeated@^1.0.0:
3002 | version "1.0.0"
3003 | resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21"
3004 | dependencies:
3005 | escape-string-regexp "^1.0.2"
3006 |
3007 | tty-browserify@~0.0.0:
3008 | version "0.0.0"
3009 | resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
3010 |
3011 | tunnel-agent@^0.4.0, tunnel-agent@~0.4.1:
3012 | version "0.4.3"
3013 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb"
3014 |
3015 | tweetnacl@^0.14.3, tweetnacl@~0.14.0:
3016 | version "0.14.5"
3017 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
3018 |
3019 | typedarray@^0.0.6, typedarray@~0.0.5:
3020 | version "0.0.6"
3021 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
3022 |
3023 | uid-number@~0.0.6:
3024 | version "0.0.6"
3025 | resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
3026 |
3027 | umd@^3.0.0:
3028 | version "3.0.1"
3029 | resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.1.tgz#8ae556e11011f63c2596708a8837259f01b3d60e"
3030 |
3031 | unique-stream@^2.0.2:
3032 | version "2.2.1"
3033 | resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.2.1.tgz#5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369"
3034 | dependencies:
3035 | json-stable-stringify "^1.0.0"
3036 | through2-filter "^2.0.0"
3037 |
3038 | unzip-response@^1.0.2:
3039 | version "1.0.2"
3040 | resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe"
3041 |
3042 | url-parse-lax@^1.0.0:
3043 | version "1.0.0"
3044 | resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73"
3045 | dependencies:
3046 | prepend-http "^1.0.1"
3047 |
3048 | url-regex@^3.0.0:
3049 | version "3.2.0"
3050 | resolved "https://registry.yarnpkg.com/url-regex/-/url-regex-3.2.0.tgz#dbad1e0c9e29e105dd0b1f09f6862f7fdb482724"
3051 | dependencies:
3052 | ip-regex "^1.0.1"
3053 |
3054 | url@~0.11.0:
3055 | version "0.11.0"
3056 | resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
3057 | dependencies:
3058 | punycode "1.3.2"
3059 | querystring "0.2.0"
3060 |
3061 | util-deprecate@~1.0.1:
3062 | version "1.0.2"
3063 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
3064 |
3065 | util@~0.10.1, util@0.10.3:
3066 | version "0.10.3"
3067 | resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
3068 | dependencies:
3069 | inherits "2.0.1"
3070 |
3071 | uuid@^2.0.1:
3072 | version "2.0.3"
3073 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a"
3074 |
3075 | uuid@^3.0.0:
3076 | version "3.0.1"
3077 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1"
3078 |
3079 | vali-date@^1.0.0:
3080 | version "1.0.0"
3081 | resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6"
3082 |
3083 | validate-npm-package-license@^3.0.1:
3084 | version "3.0.1"
3085 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
3086 | dependencies:
3087 | spdx-correct "~1.0.0"
3088 | spdx-expression-parse "~1.0.0"
3089 |
3090 | verror@1.3.6:
3091 | version "1.3.6"
3092 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c"
3093 | dependencies:
3094 | extsprintf "1.0.2"
3095 |
3096 | vinyl-assign@^1.0.1:
3097 | version "1.2.1"
3098 | resolved "https://registry.yarnpkg.com/vinyl-assign/-/vinyl-assign-1.2.1.tgz#4d198891b5515911d771a8cd9c5480a46a074a45"
3099 | dependencies:
3100 | object-assign "^4.0.1"
3101 | readable-stream "^2.0.0"
3102 |
3103 | vinyl-fs@^2.2.0:
3104 | version "2.4.4"
3105 | resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-2.4.4.tgz#be6ff3270cb55dfd7d3063640de81f25d7532239"
3106 | dependencies:
3107 | duplexify "^3.2.0"
3108 | glob-stream "^5.3.2"
3109 | graceful-fs "^4.0.0"
3110 | gulp-sourcemaps "1.6.0"
3111 | is-valid-glob "^0.3.0"
3112 | lazystream "^1.0.0"
3113 | lodash.isequal "^4.0.0"
3114 | merge-stream "^1.0.0"
3115 | mkdirp "^0.5.0"
3116 | object-assign "^4.0.0"
3117 | readable-stream "^2.0.4"
3118 | strip-bom "^2.0.0"
3119 | strip-bom-stream "^1.0.0"
3120 | through2 "^2.0.0"
3121 | through2-filter "^2.0.0"
3122 | vali-date "^1.0.0"
3123 | vinyl "^1.0.0"
3124 |
3125 | vinyl@^0.4.3:
3126 | version "0.4.6"
3127 | resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847"
3128 | dependencies:
3129 | clone "^0.2.0"
3130 | clone-stats "^0.0.1"
3131 |
3132 | vinyl@^0.5.0:
3133 | version "0.5.3"
3134 | resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde"
3135 | dependencies:
3136 | clone "^1.0.0"
3137 | clone-stats "^0.0.1"
3138 | replace-ext "0.0.1"
3139 |
3140 | vinyl@^1.0.0:
3141 | version "1.2.0"
3142 | resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884"
3143 | dependencies:
3144 | clone "^1.0.0"
3145 | clone-stats "^0.0.1"
3146 | replace-ext "0.0.1"
3147 |
3148 | virtual-dom@^2.1.1:
3149 | version "2.1.1"
3150 | resolved "https://registry.yarnpkg.com/virtual-dom/-/virtual-dom-2.1.1.tgz#80eda2d481b9ede0c049118cefcb4a05f21d1375"
3151 | dependencies:
3152 | browser-split "0.0.1"
3153 | error "^4.3.0"
3154 | ev-store "^7.0.0"
3155 | global "^4.3.0"
3156 | is-object "^1.0.1"
3157 | next-tick "^0.2.2"
3158 | x-is-array "0.1.0"
3159 | x-is-string "0.1.0"
3160 |
3161 | vm-browserify@~0.0.1:
3162 | version "0.0.4"
3163 | resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73"
3164 | dependencies:
3165 | indexof "0.0.1"
3166 |
3167 | ware@^1.2.0:
3168 | version "1.3.0"
3169 | resolved "https://registry.yarnpkg.com/ware/-/ware-1.3.0.tgz#d1b14f39d2e2cb4ab8c4098f756fe4b164e473d4"
3170 | dependencies:
3171 | wrap-fn "^0.1.0"
3172 |
3173 | watchpack@^1.0.1:
3174 | version "1.2.0"
3175 | resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.2.0.tgz#15d4620f1e7471f13fcb551d5c030d2c3eb42dbb"
3176 | dependencies:
3177 | async "^2.1.2"
3178 | chokidar "^1.4.3"
3179 | graceful-fs "^4.1.2"
3180 |
3181 | which-module@^1.0.0:
3182 | version "1.0.0"
3183 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
3184 |
3185 | which@^1.2.1, which@^1.2.9, which@1:
3186 | version "1.2.12"
3187 | resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192"
3188 | dependencies:
3189 | isexe "^1.1.1"
3190 |
3191 | wide-align@^1.1.0:
3192 | version "1.1.0"
3193 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad"
3194 | dependencies:
3195 | string-width "^1.0.1"
3196 |
3197 | window-size@^0.2.0:
3198 | version "0.2.0"
3199 | resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075"
3200 |
3201 | wordwrap@~0.0.2:
3202 | version "0.0.3"
3203 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
3204 |
3205 | wordwrap@1.0.0:
3206 | version "1.0.0"
3207 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
3208 |
3209 | wrap-ansi@^2.0.0:
3210 | version "2.1.0"
3211 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
3212 | dependencies:
3213 | string-width "^1.0.1"
3214 | strip-ansi "^3.0.1"
3215 |
3216 | wrap-fn@^0.1.0:
3217 | version "0.1.5"
3218 | resolved "https://registry.yarnpkg.com/wrap-fn/-/wrap-fn-0.1.5.tgz#f21b6e41016ff4a7e31720dbc63a09016bdf9845"
3219 | dependencies:
3220 | co "3.1.0"
3221 |
3222 | wrappy@1:
3223 | version "1.0.2"
3224 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
3225 |
3226 | x-is-array@0.1.0:
3227 | version "0.1.0"
3228 | resolved "https://registry.yarnpkg.com/x-is-array/-/x-is-array-0.1.0.tgz#de520171d47b3f416f5587d629b89d26b12dc29d"
3229 |
3230 | x-is-string@0.1.0:
3231 | version "0.1.0"
3232 | resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82"
3233 |
3234 | xtend@^4.0.0, "xtend@>=4.0.0 <4.1.0-0", xtend@~4.0.0, xtend@~4.0.1:
3235 | version "4.0.1"
3236 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
3237 |
3238 | y18n@^3.2.1:
3239 | version "3.2.1"
3240 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
3241 |
3242 | yallist@^2.0.0:
3243 | version "2.0.0"
3244 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.0.0.tgz#306c543835f09ee1a4cb23b7bce9ab341c91cdd4"
3245 |
3246 | yargs-parser@^2.4.1:
3247 | version "2.4.1"
3248 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-2.4.1.tgz#85568de3cf150ff49fa51825f03a8c880ddcc5c4"
3249 | dependencies:
3250 | camelcase "^3.0.0"
3251 | lodash.assign "^4.0.6"
3252 |
3253 | yargs@^4.7.1:
3254 | version "4.8.1"
3255 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-4.8.1.tgz#c0c42924ca4aaa6b0e6da1739dfb216439f9ddc0"
3256 | dependencies:
3257 | cliui "^3.2.0"
3258 | decamelize "^1.1.1"
3259 | get-caller-file "^1.0.1"
3260 | lodash.assign "^4.0.3"
3261 | os-locale "^1.4.0"
3262 | read-pkg-up "^1.0.1"
3263 | require-directory "^2.1.1"
3264 | require-main-filename "^1.0.1"
3265 | set-blocking "^2.0.0"
3266 | string-width "^1.0.1"
3267 | which-module "^1.0.0"
3268 | window-size "^0.2.0"
3269 | y18n "^3.2.1"
3270 | yargs-parser "^2.4.1"
3271 |
3272 | yauzl@^2.2.1:
3273 | version "2.7.0"
3274 | resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.7.0.tgz#e21d847868b496fc29eaec23ee87fdd33e9b2bce"
3275 | dependencies:
3276 | buffer-crc32 "~0.2.3"
3277 | fd-slicer "~1.0.1"
3278 |
3279 |
--------------------------------------------------------------------------------